我是新来蒙戈和我有了与它的所有相关文件的ID的数组的文档。我需要的文件在单个查询所有它的relateds获取。目前我获取文件和我的查询separatly每一个它的相关文件与IDS有
我所有的文件都放在同一个集合documents_nodes
,看起来像这样:
{
"id": "document_1",
"name": "flask",
"relateds": [
"document_2",
"document_3",
"document_4"
],
"parents": [
"document1_1"
]
}
第一个查询是获取初始文档
db.documents_nodes.find({id: document_1})
然后我通过第二个查询来查询其相关性
db.documents_nodes.aggregate([{
$match: {
$and: [{
id: {
$in: ["document_2", "document_3", "document_2"]
}
}]
}
}])
有没有办法来合并这两个查询,我试过,但它不能正常工作
db.documents_nodes.aggregate([
{
$match: {
uri: "https://opus.adeo.com/LMFR_prod/3206"
}
},
{
$addFields: {
newRelateds:
{
$match: {
id: {
$in: [ "$relateds" ]
}
}
}
}
}
])
“ERRMSG”: “无法识别的表达式 '$匹配'”, “代码”:168, “ codeName”:“ InvalidPipelineOperator”
答案 0 :(得分:0)
如果有人有同样的需求,我已经找到了解决之道。
我使用Future<bool> _onBackPressed() {
if (!widget.editing) {
Navigator.pop(context, true);
return Future.value(false);
} else {
return showDialog(...
展平文档数组,然后使用$unwind
通过ID提取文档,最后将结果归为新的键。
$lookup