首页 > 解决方案 > Mongo 聚合在查找另一个集合后使用 $match

问题描述

聚合查找后我有这样的文档

1.  lookup 


{
  from: 'dogs',
  localField: 'ton_id',
  foreignField: 'ton_id',
  as: 'catch'
}

查找后的结果:


_id:ObjectId("5deasn732bksd595bq65")

admin : Array
    0 : object
       _id:ObjectId("5dasdfkjh18364csd251as21")
       ton_id:"255"
       contact:"17942365"

catch: Array
    0 : object
       _id:ObjectId("5deasd64bcsd251as21")
       ton_id:"255"
       breed:"dog"
       age  :"5"

    1 : object  
       _id:ObjectId("5deasdsdfbwj83921as21")
       ton_id:"255"
       breed:"cat"
       age  :"7"

    2 : object  
       _id:ObjectId("5ddsgergdsdfbwj83921as21")
       ton_id:"255"
       breed:"cat"
       age  :"8"


需要使用 $match 并且只获得像这样的猫品种并且年龄为 8

catch: Array


    0 : object  
       _id:ObjectId("5ddsgergdsdfbwj83921as21")
       breed:"cat"
       age  :"8"


使用 $lookup 后尝试了这个

$match

{catch: { $elemMatch: {'breed':"cat",'age':"8" } }}

它没有返回任何输出

标签: mongodbmongodb-queryaggregation-frameworkaggregate-functions

解决方案


推荐阅读