我有一个名为“游戏”的集合,其文档存储游戏所有者的ID。
{
"owner" : "88878b6c25c167d"
}
{
"owner" : "88878b6c25c167d"
}
{
"owner" : "af565f77f73469b"
}
然后我有另一个名为“users”的集合。
{
"id" : "af565f77f73469b"
}
{
"id" : "a881335e1d4cf17"
}
{
"id" : "aa3ce3f7767c46b"
}
{
"id" : "d19e52c0bd78bcb"
}
{
"id" : "88878b6c25c167d"
}
所以第一个查询我会检索所有游戏的所有者并将这些值存储在一个数组中。['88878b6c25c167d', '88878b6c25c167d', 'af565f77f73469b']
我想要执行的第二个查询应检索具有相应ID的用户的文档。以前我使用过这个查询:
db.users.find({'id':
{'$in': [
'88878b6c25c167d',
'88878b6c25c167d',
'af565f77f73469b'
]}})
这是问题所在:如果用户列出两次,它不会返回重复文档,如上所述。相反,我只得到一个。这打破了我的申请。如何确保每个所有者都返回一份文件?
答案 0 :(得分:1)
MongoDB工作得很好---它找到所有用户,其id-s
包含在数组中。
不了解您需求的更广泛背景(也许告诉我们您想要实现的目标 - 而不是错误?),但是如果您希望在{{1}之间建立关联}和games
这样的东西可能是合适的:
users
,它将返回其游戏数组。owner id
,只需将她的user
传递给1的数据结构,然后通过游戏获取数组。这是你在找什么?你需要1的帮助吗??