2016-11-07 76 views
0

我有一个蒙戈查询类似如下:

db.membership.find({ "$match" : { "members.sourcedid.id" : "0144401" , "sourcedid.path.store" : "0985" , "sourcedid.path.campus" : "2E3A9B7C-6C8E-433C-85FC-4632FD7C90CD"}}) 

它不返回任何结果。

但是,如果我运行下面的返回结果:

db.membership.find({ "members.sourcedid.id" : "0144401" , "sourcedid.path.store" : "0985" , "sourcedid.path.campus" : "2E3A9B7C-6C8E-433C-85FC-4632FD7C90CD"}) 

我不知道为什么会这样。任何人都可以帮忙吗?我是mongodb的新手

谢谢。

回答

1

因为$match运营商只适用于聚合框架,而不是在find()方法它不会产生任何结果。

上述查询可以使用aggregate()方法

db.membership.aggregate([ 
    { 
     "$match" : { 
      "members.sourcedid.id": "0144401", 
      "sourcedid.path.store": "0985", 
      "sourcedid.path.campus": "2E3A9B7C-6C8E-433C-85FC-4632FD7C90CD" 
     } 
    } 
]) 
运行
相关问题