2014-10-08 148 views
0

如何从不区分大小写的mongodb集合中获取不同的值。通过给出的例子,我能够找到不同的值。pymongo查询不同值和不区分大小写

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

例如:从pymongo导入

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

但需要得到只有一个值作为“海得拉巴”,作为值是在两个文件相同。

回答

0

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

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

感谢您分享信息 – 2015-01-29 12:16:10