【发布时间】:2017-08-01 18:29:29
【问题描述】:
我有一个名为“游戏”的集合,其文档存储游戏所有者的 ID。
{
"owner" : "88878b6c25c167d"
}
{
"owner" : "88878b6c25c167d"
}
{
"owner" : "af565f77f73469b"
}
然后我有另一个名为“用户”的集合。
{
"id" : "af565f77f73469b"
}
{
"id" : "a881335e1d4cf17"
}
{
"id" : "aa3ce3f7767c46b"
}
{
"id" : "d19e52c0bd78bcb"
}
{
"id" : "88878b6c25c167d"
}
所以我做的第一个查询是检索所有游戏的所有者并将这些值存储在一个数组中。['88878b6c25c167d', '88878b6c25c167d', 'af565f77f73469b']
我要执行的第二个查询应该检索具有相应 ID 的用户的文档。以前我使用过这个查询:
db.users.find({'id':
{'$in': [
'88878b6c25c167d',
'88878b6c25c167d',
'af565f77f73469b'
]}})
这里的问题是:如果用户被列出两次,它不会返回重复的文档,如上所述。相反,我只得到一个。这打破了我的申请。如何确保每个所有者都返回一份文件?
【问题讨论】:
-
保留列表,然后遍历
find操作产生的文档,然后进行关联。 -
听起来应用程序坏了。
-
@Kamsky:你认为应用程序为什么坏了?
-
@WiredPrairie:所以在 Mongo 中没有办法做到这一点?
-
返回重复文件?不。我当然不希望它表现得那样。