mongodb查询字段的唯一性

时间:2014-04-02 13:20:53

标签: mongodb

进行前缀搜索

query = ({$or:[{country_lc:/^unit.*/, docType:'country'}, {region_lc:/^unit.*/, docType:'region'}, {city_lc:/^unit.*/, docType:'city'}]})

FIELDS = [
            country : 1
        ,   region  : 1
        ,   city    : 1
        ,   docType : 1
    ]

SORT_RULE = [

           country_lc  : 1
        ,   region_lc   : 1
        ,   city_lc     : 1
    ]

def locCursor = db.location.find(query, FIELDS).sort(SORT_RULE)

但这也给了我重复的结果......所以我想要disticnt结果。区别应该是在该领域 名为' name'在位置收集。对于每个唯一名称的手段,它应该是五个我一个结果

1 个答案:

答案 0 :(得分:0)

在MongoDB shell中,你可以这样做:

db.location.aggregate([
    {$match: {$or:[
        {country_lc:/^unit.*/, docType:'country'}, 
        {region_lc:/^unit.*/, docType:'region'}, 
        {city_lc:/^unit.*/, docType:'city'}
    ]}},
    {$group: {
        _id: '$name', 
        country: '$country', 
        region: '$region', 
        city: '$city', 
        docType: '$docType'
    }},
    {$sort: {couuntry_lc: 1, region_lc: 1, city_lc: 1}}
])

获得结果。