gpt4 book ai didi

ruby - Has_and_belongs_to_many 索引mongoid

转载 作者:可可西里 更新时间:2023-11-01 09:52:18 24 4
gpt4 key购买 nike

我在用户和项目之间建立了多对多关系,而且它工作得很好。但是我想在 mongoid 中模拟这种情况:

db.projects.insert(
{
"name" : "Test project",
"memberships" : [
{
"user_id" : ObjectId("4d730fcfcedc351d67000002"),
"role" : "administrator"
},
{
"role" : "editor",
"user_id" : ObjectId("4d731fe3cedc351fa7000002")
}
]
}
)

我阅读了 Mongoid 的文档,对于关系我必须这样做:

has_and_belongs_to_many :preferences, index: true

然后像这样创建:

rake db:mongoid:create_indexes

但是当我坚持时,它会保存关系但不会创建索引。 Modeling many-to-many :through with Mongoid/MongoDB问完全相同的问题,但答案没有显示如何在 Mongoid 中执行此操作,除非我遗漏了什么。

最佳答案

这是一个与用户多对多关联的项目记录示例:

{ 
"_id" : ObjectId("53148dae69616db0c7000000"),
"user_ids" :
[
ObjectId("53148dbd69616db0c7010000"),
ObjectId("53148dc169616db0c7020000")
]
}

相关索引将如下所示:

  {
"v" : 1,
"key" : {
"user_ids" : 1
},
"ns" : "mydb.projects",
"background" : true,
"name" : "user_ids_1"
}

您发布的那个有'membership' 子文档,这些子文档与用户有关联。在这种情况下要索引 user_ids,你需要做类似的事情

db.projects.ensureIndex({"memberships.user_id": 1})

关于ruby - Has_and_belongs_to_many 索引mongoid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22072833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com