我正在尝试执行mongodb查询,该查询按一定的限制按层次结构收集对象。目前,我在使用限制子句时遇到问题:我需要检查来自不同集合的值之间的相等性:
db.getCollection('collection1').aggregate([{
"$graphLookup": {
"from": "collection1",
"startWith": "$childrenIds",
"connectFromField": "childrenIds",
"connectToField": "_id",
"as": "childrenResult",
"restrictSearchWithMatch": {"$or": [{"type": {"$ne": "Some Type"}},{"db.getCollection('collection2').findOne({'_id': 'someReferenceFieldFromCollection1')}).status": {"$eq": "ENABLED"}}]}
}
}, {
"$unwind": "$childrenResult"
}, {
"$replaceRoot": {
"newRoot": "$childrenResult"
}
}])
似乎我不能使用嵌套的mongodb查询。不过,当我执行嵌套查询时
db.getCollection('collection2').findOne({'_id': 'someId')}).status
我知道了它的状态值。
即使我对ID进行了硬编码,我也在collection2中进行查找,但我的层次结构查询无法正常工作。
所以我的问题是如何进行这种内部查询?
答案 0 :(得分:0)
似乎mongodb不支持嵌套查询。因此,我已经重构了我的服务代码。