2016-11-07 120 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" 
     } 
    } 
]) 
運行
相關問題