分组从多个查询结果和聚合结果蒙戈

时间:2019-02-02 15:33:34

标签: mongodb

我是新来蒙戈和我有了与它的所有相关文件的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”

1 个答案:

答案 0 :(得分:0)

如果有人有同样的需求,我已经找到了解决之道。

我使用Future<bool> _onBackPressed() { if (!widget.editing) { Navigator.pop(context, true); return Future.value(false); } else { return showDialog(... 展平文档数组,然后使用$unwind通过ID提取文档,最后将结果归为新的键。

$lookup