如何在mongodb中找到不同的记录

时间:2014-11-03 08:56:42

标签: mongodb distinct record

我在MongodB中插入以下记录

{
    "_class" : "mkcl.os.transformer.PayloadObject",
    "_id" : ObjectId("53763e6fe4b00e612650c18c"),
    "dataMap" : {
        "gpsLocation" : "Latitude: 18.6099243, Longitude:73.7710601,Altitude:0.0",
        "85" : "Prahlad Singh",
        "86" : "25",
        "88" : "16/05/14",
        "92" : "",
        "89" : "Male",
        "91" : "Single",
        "87" : "Pune",
        "90" : "Employement"
    },
    "formId" : NumberLong(22),
    "imageUrls" : {},
    "isDeleted" : false
}

有很多这样的记录。现在,我想要基于键86,89和90的不同记录。

我正在使用查询db.payloadObject.distinct('dataMap.86'),它正在返回基于值键的不同记录 - 86。我不了解如何根据这些条件获取值。

1 个答案:

答案 0 :(得分:3)

使用聚合可以返回不同的复合键,例如

db.payloadObject.aggregate([{
    $group : {
        _id : {
            86 : "$dataMap.86", 
            89 : "$dataMap.89", 
            90 : "$dataMap.90", 
        }
    }
}]);