使用mongoose以不同的值检索完整文档

时间:2016-06-08 19:44:06

标签: mongodb mongoose aggregation-framework

我的客户文件是这样构建的:

{
   "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回来,一个是customerId 256,另一个是客户ID为123.

1 个答案:

答案 0 :(得分:2)

您需要使用聚合框架:

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