在MongoDb上向后搜索
我有两件收藏品 集合“用户” 收集“后端” 我想获得一个后端状态为“正在运行”的用户的后端列表。 mongodb如何像连接两个表一样实现这一点? 是否有任何方法可以从后端向后搜索或使用过滤器功能 我可以这样搜索在MongoDb上向后搜索,mongodb,nosql,Mongodb,Nosql,我有两件收藏品 集合“用户” 收集“后端” 我想获得一个后端状态为“正在运行”的用户的后端列表。 mongodb如何像连接两个表一样实现这一点? 是否有任何方法可以从后端向后搜索或使用过滤器功能 我可以这样搜索 db.users.find({"backends.$id" : "distring"}) 但是如果我想在后端对象中搜索状态,该怎么办?喜欢 db.users.find({"backends.$state" : "running"}) 当然,它不起作用。MongoDB不支持连接,所以您
db.users.find({"backends.$id" : "distring"})
但是如果我想在后端对象中搜索状态,该怎么办?喜欢
db.users.find({"backends.$state" : "running"})
当然,它不起作用。MongoDB不支持连接,所以您需要分两步来完成。在外壳中:
var id=db.backends.find({state:'running'},{u id:1}).map(函数(后端){
返回后端。\u id;
});
var users=db.users.find({'backends.$id':{$in:ids}}).toArray();
另一方面,对于后端
数组元素,最好使用普通的ObjectId
而不是DBRef
,除非该数组中的id实际上可以引用多个集合中的文档
db.users.find({"backends.$id" : "distring"})
db.users.find({"backends.$state" : "running"})