如果我要在mongodb集合中搜索特定字段,我的命令将如下所示:
db.collection.find({ name : "John"})
如果我想让字段名称动态,命令是什么?
示例:
db.collection.find({ <Dyanmic field variable> : <Value>})
或者有替代方法可以实现这个功能吗?
答案 0 :(得分:0)
只需使用变量代替字典键:
name = 'field_name'
db.collection.find({name : "John"})
答案 1 :(得分:0)
在不知道数据类型的情况下尝试时会出现问题。所以为了解决这个问题,我使用了以下内容:
def multi_row_single_field_update(self, crieteriafldnm, crieteriafldtyp, updtfldnm, updtfldval, updtfldtyp):
try:
criteria = raw_input('\nEnter ' + crieteriafldnm + ' to update\n')
if crieteriafldtyp == 'int':
count = self.my_connect.find({str(crieteriafldnm): int(criteria)}).count()
else:
count = self.my_connect.find({str(crieteriafldnm): str(criteria)}).count()
updt_criteria = int(criteria) if updtfldtyp == 'int' else str(criteria)
self.my_connect.update(
{"$atomic": 1},
{str(crieteriafldnm): updt_criteria},
{"$set": {str(updtfldnm): str(updtfldval)}},
upsert=False, multi=True
)