问题标签 [mongoid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
275 浏览

mongodb - 在 MongoDB 中,如果索引在 3 个字段上,我们可以在查询 2 个字段时使用该索引吗?(第三场通配符)

如果有索引

查询时,

如果our_id被省略,或者date被省略,它仍然可以使用索引,在 explain() 输出中类似于以下内容:

即使两者our_iddate省略,索引仍然可以使用。

但是,如果page_type省略,则不能使用索引(如 所示explain())。那么在 MongoDB 中,当索引的一部分是序列的东西,比如数字或日期时,是否真的可以在查询时省略它?这在关系数据库中也是如此吗,因为我认为如果该索引基于这 3 个字段,它可能严格在 3 个字段上。

0 投票
2 回答
4431 浏览

mongodb - MongoDB 的 Map/Reduce 排序是否有效?

如果使用以下

它不会排序pageviews。或者,如果它是哈希数组:

它也行不通。我认为它必须是一个数组的原因是指定要排序的第一个字段等。我还尝试了一个平面数组,而不是上面列出的第一个代码中的数组数组,它​​也不起作用.

它不工作吗?这是规范:http ://api.mongodb.org/ruby/current/Mongo/Collection.html#map_reduce-instance_method

0 投票
2 回答
1129 浏览

ruby-on-rails - 我可以为 ActiveRecord(或 Mongoid)中的数据库连接和 table_name 进行线程安全的每个请求配置吗?

也称为<<“用户有很多数据库”问题。>>

环境

我的应用程序是这样建模的:

你明白了!

因此,我不想在数据库中建模数据库,而是希望:

  • 一个保存用户的 sqlite3 数据库和
  • 每个用户有许多 sqlite 数据库

每个用户都会在他的数据库中 LCRUD 他的表(类似于 phpmyadmin)

问题

我想为数据库连接和 table_name 进行线程安全的每个请求配置

编辑
如您所见,连接是全局的并且在线程之间共享,但根据我的应用程序规范,每个用户都有自己的连接。现在假设 2 个不同的用户同时发出 2 个请求。

选项?

  • 我放弃 ActiveRecord 并使用准系统 DB 驱动程序
  • 我放弃线程安全
0 投票
4 回答
20828 浏览

mongodb - 使用 Mongoid 批量插入/更新?

我用谷歌搜索了所有其他人,但我没有找到答案。问题是:

嗨,我怎样才能用 Mongoid 批量插入到 MongoDB?

0 投票
1 回答
1874 浏览

mongodb - 使用 MongoDB,有什么简单的方法可以重用 Map/Reduce 结果?

例如,在进行 Analytics 时,可能需要 10 秒的 map/reduce 运行。运行后,如果其他网页可以使用该结果,则每页将节省 10 秒。

以某种方式缓存 map/reduce 结果会很好。

可以像在 db 中一样记录成功的 map/reduce 运行map_reduce_result_[timestamp],然后将此时间戳保存db.run_log在 MongoDB 中。例如,此时间戳是 UNIX 纪元时间。因此,当其他页面需要访问结果时,他们可以获取最大时间戳,然后只需查找存储在 MongoDB 中的那个结果。但这样做有点像 hack,想知道是否有更好的方法来做到这一点。

0 投票
2 回答
2622 浏览

ruby-on-rails - Integrate Mongoid and CanCan

Have somebody tried to rewrite CanCan ActiverRecordAddtions for Mongoid http://github.com/ryanb/cancan/blob/master/lib/cancan/active_record_additions.rb

Regards, Alexey Zakharov

0 投票
1 回答
1300 浏览

mongodb - MongoDB 的 Map/Reduce 结果保存为永久集合后,如何在内部对其进行排序,并使用 Mongoid 取回?

Map/Reduce 结果是否可以永久存储,但不能排序?例如,

以上内容永久存储但未排序。

要即时对其进行排序,它可以是

但是你能在内部对表格进行排序吗?我认为如果为排序键创建索引,那么它几乎和内部排序一样好?

或者,我们如何对其进行排序,并将其保存为新集合analyticsSortedCachedResult

我想稍后,要使用 Mongoid 获取任何集合,它是由

? 但我只是担心,Mongoid.master.collection('foo')即使该集合不存在,since 仍会返回一个集合。但看起来它也没有保存到 MongoDB 中。

0 投票
2 回答
5390 浏览

collections - 如何使用 Mongoid 判断 MongoDB 中是否存在集合?

由于Mongoid.master.collection()即使集合不存在也会返回一个集合,我们可以使用

测试它是否是一个空集合。另一种方法是循环

但是有没有更简单的方法来检测它是否存在?

0 投票
3 回答
357 浏览

mongodb - MongoDB 使用 db.things.find("j != 3 && k > 10") 与 db.things.find({j: {$ne: 3}, k: {$gt: 10} })

我一直在使用 MongoDB 和 Ruby 驱动程序和 Mongoid,以及行

只是看起来很奇怪,很难记住。为什么不使用解析器:

哪个可以自动转换为所需的形式?(或它在内部使用的任何形式)。

0 投票
3 回答
4081 浏览

ruby-on-rails - Mongoid 命名范围比较同一文档中的两个时间字段

我需要在 Mongoid 中创建一个命名范围,用于比较同一文档中的两个时间字段。如

scope :foo, :where => {:updated_at.gt => :checked_at}

这显然不起作用,因为它被视为:checked_at一个符号,而不是实际的字段。关于如何做到这一点的任何建议?

更新 1

这是我声明了这个范围的模型,去掉了很多额外的代码。

这给了我以下错误:

'<class:User>': undefined method 'checked_at' for User:Class (NoMethodError)