2016-06-08 58 views
1

由不同的價值的完整資料我已經客戶文檔結構如下所示:檢索使用貓鼬

{ 
    "name" : "blah" 
    "phone": "blah" 
    "customerId" : 123 
}, 
{ 
    "name" : "blah" 
    "phone": "blah" 
    "customerId" : 123 
}, 
{ 
    "name" : "blah" 
    "phone": "blah" 
    "customerId" : 256 
} 

我想以檢索那些名字具有「B」字母的全文件:

Customer.find({"name": { '$regex' : req.query.name}}) 

是否有竅門,但我只希望每個customerId都有一個,這意味着我寫了3個對象,我想要2個回來,其中一個客戶ID爲256,另一個客戶ID爲123.

回答

2

您需要爲此使用匯總框架:

Customer.aggregate(
    [ 
     { "$match": { "name": { '$regex' : req.query.name } } }, 
     { "$group": { 
      "_id": "$customerId", 
      "name": { "$last": "$$ROOT" } } } 
    ], callback(err, result) 
)