我的用户'曾经喜欢的集合:
{'_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,新的爱好'表示嵌入对象,字段名称通常是明确的。
我是否必须维护两个数组(在mongodb中)或列表(在python中)?难道不是一个简单的解决方案吗?
{'_id':'xxx', 'hobbies':['Dance','Ski'], 'likes':[5,8]}
答案 0 :(得分:1)
不幸的是,mongodb不支持查询/过滤字段名称。
您的选择是: