MongoDB查询引用文档
我试图使用Mongodb引用的文档使其类似于sql关系数据库。 拥有一个像posted_event、users、event这样的集合 我做了一些搜索,我知道我可以从集合A获得一个objectid,而集合B将拥有一个引用集合A的objectid的字段 使用这种设计,在我的应用程序中,我只需查询集合A,然后传入值并“存储”/“显示”它们到集合B的结果中 这是向最终用户显示最终结果的正确用法和方法吗 如果正确,我将如何“替换”集合A中的集合B中的值 我想这只是两个find()查询 集合B是最终结果MongoDB查询引用文档,mongodb,mongodb-query,Mongodb,Mongodb Query,我试图使用Mongodb引用的文档使其类似于sql关系数据库。 拥有一个像posted_event、users、event这样的集合 我做了一些搜索,我知道我可以从集合A获得一个objectid,而集合B将拥有一个引用集合A的objectid的字段 使用这种设计,在我的应用程序中,我只需查询集合A,然后传入值并“存储”/“显示”它们到集合B的结果中 这是向最终用户显示最终结果的正确用法和方法吗 如果正确,我将如何“替换”集合A中的集合B中的值 我想这只是两个find()查询 集合B是最终结果
{
"_id": {
"$oid": "5ec032f4b0dbf9d43006aa78"
},
"activity_creator_id": {
"$oid": "5ec02da3b0dbf9d43006aa5e"
},
"activity_receiver_id": [{
"$oid": "5ec02e8bb0dbf9d43006aa61"
}],
"activity_name": {
"$oid": "5ec03137b0dbf9d43006aa73"
},
"activity_status": {
"$oid": "5ec02bdab0dbf9d43006aa56"
}
}
集合A包含let say名称
{
"_id": {
"$oid": "5ec02da3b0dbf9d43006aa5e"
},
"first_name": "Bobby",
"last_name": "Lin",
"email": "bobby.lin@gmail.com"
}
Mongodb为连接两个集合提供了$lookup操作符。它基本上就像sql中的一个连接,在这里您可以在a中的_id和B中的活动_creator_id之间进行匹配。
如果您使用的是mongoose odm,您可以直接在集合B中的查找查询中进行填充。Ahh明白了!谢谢你的提示。我想知道,当我决定使用java/javascript进行api/数据库调用时,我基本上会使用$lookup操作符来“连接”信息,然后清理并向下搜索我需要的数据?是的,尽管我建议您使用mongoose(如果您使用javascript),这会让生活更轻松。