pymongo查询不同的值和不区分大小写

时间:2014-10-08 06:30:18

标签: mongodb pymongo

如何从不区分大小写的mongodb集合中获取不同的值。通过给定的示例,我可以找到不同的值。

collection:location schema 
{ "_id" : ObjectId("542bc237e75e4a30c2e13b7e"),"place" : ["Hyderabad"]} 
{ "_id" : ObjectId("542bc238e75e4a30c2e13b7f"),"place" : ["hyderabad"]}

Ex:来自pymongo import

MongoClient client = MongoClient('mongodb://localhost:27017/') 
db = client.india 
collection = db.location 
doc = collection.distinct("place") 
print doc [[u'Hyderabad'],[u'hyderabad']] 

但是只需要将一个值作为'hyderabad',因为两个文档中的值相同。

1 个答案:

答案 0 :(得分:0)

为什么place是一个数组?我猜你有>有时在真实文件中的1个值?首先展开,然后在另外标准的compute-distinct-values聚合管道中使用$toLower字符串运算符:

db.test.aggregate([
    { "$unwind" : "$place" },
    { "$group" : { "_id" : { "$toLower" : { "$place" } } } }
])