【发布时间】:2014-07-16 17:50:37
【问题描述】:
我的用户收藏曾经喜欢:
{'_id':'xxx', 'hobbies':['Dance','Ski']}
现在我将“喜欢”添加为:
{'_id':'xxx', 'hobbies':{'Dance':5,'Ski':8}}
我想查询用户至少有一个相同的爱好,我的旧查询是这样的:
db.usr.find({'_id':{'$ne':usr['_id']}, 'hobbies':{'$in':usr['hobbies']} })
现在我的查询是这样的:
db.usr.find({'_id':{'$ne':usr['_id']},
'hobbies':{'$in':list(usr['hobbies'].keys())} })
我查看了 mongodb 文档,没有发现任何代表“爱好”字段名称或 python 字典键的内容。对于 mongodb,new 'hobbies' 表示嵌入对象,字段名称通常是确定的。
我是否必须维护两个数组(在 mongodb 中)或列表(在 python 中)?没有简单的解决办法吗?
{'_id':'xxx', 'hobbies':['Dance','Ski'], 'likes':[5,8]}
【问题讨论】:
标签: pymongo mongodb-query