我有一个 MongoDb 文档,它链接到另一个集合中的另一个文档。
集合A就像
{ _id: ..., contact_id: ObjectId('1234') }
联系人集合类似:
{ _id: ObjectId('1234'), name: 'Joe' }
我正在尝试查找链接联系人姓名为“Joe”的所有 A 文档
我不知道你会怎么做。
您可以使用@johnnyhk 回答后在 MongoDB v3.2 中引入的聚合查找来完成此操作。
db.A.aggregate(
[
{
$lookup: {
localField: "contact_id",
from: "Contacts",
foreignField: "_id",
as: "contact"
}
},
{
$match: {
"contact.name": "Joe"
}
}
]
)
Run Code Online (Sandbox Code Playgroud)
您无法在单个查询中执行此操作,因为 MongoDB 不支持联接。相反,您必须将其分为两个查询:第一个查询获取_idJoe 的信息,第二个查询获取他的A文档。我不确定你使用的是什么语言,但在 shell 中:
db.A.find({contact_id: db.contacts.findOne({name: 'Joe'})._id});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2474 次 |
| 最近记录: |