rails mongoid中的多键索引

Posted

技术标签:

【中文标题】rails mongoid中的多键索引【英文标题】:Multikey indexing in rails mongoid 【发布时间】:2013-02-28 07:35:29 【问题描述】:

我想以这种格式存储数据。


 "_id": ObjectId(...)
 "title": "Grocery Quality"
 "comments": [
     author_id: ObjectId(...)
      date: Date(...)
      text: "Please expand the cheddar selection." ,
     author_id: ObjectId(...)
      date: Date(...)
      text: "Please expand the mustard selection." ,
     author_id: ObjectId(...)
      date: Date(...)
      text: "Please expand the olive selection." 
 ]

我对如何为我的数据实现这种格式感到困惑。

我正在使用 mongoid; Mongoid 支持多键索引吗?

如何使用 mongoid 来实现我想要的格式和行为?

【问题讨论】:

我也遇到了同样的问题。 你想在什么上创建索引? @gami 实际寻找的问题是什么我很困惑如何创建嵌入文档或如何创建多索引 Mongoid 不支持 MONGODB 会做的多键索引 @Viran 那么如何使用 mongoid 配置这样的数据库集合? @Ganeshkunwar 我认为问题来自 Gami,因为 OP 本身没有指定该详细信息,所以您想要索引的字段是什么 【参考方案1】:

我不确定我是否正确地理解了您的疑问,但由于我无法发表评论,因此我会立即回答。如果不是你问的这个,请多解释一下=)

您的模型包含您之前编写的那些字段,我将其称为 Post 模型。对于上面的 cmets,我建议你创建另一个模型 callend Comment 并将其嵌入到 Post 模型中:

class Post
  field: title
  embeds_many :comments
end

class Comment
  field :date
  field :text
  has_one :author
  embedded_in :post
end

要索引 Post 模型上的 cmets,您可以这样做:

index( :"comments.updated_at" => 1 )

【讨论】:

以上是关于rails mongoid中的多键索引的主要内容,如果未能解决你的问题,请参考以下文章

wpf中的多键手势

c#中的多键字典? [复制]

Mongoid Rails 4 按 asc 或 desc order created_at 排序

嵌套属性中的 Rails/Mongoid 错误消息

如何将内存中的 MongoDB 与 Rails、Mongoid 和 Rspec 一起使用?

Mongoid(Rails)中的两个 1 - N 关系