如果我要搜索某个特定领域中的mongodb收集我的命令看起来是这样的:搜索动态场在MongoDB中收集
db.collection.find({ name : "John"})
如果我想打的字段名称动态,命令是什么?
实施例:
db.collection.find({ <Dyanmic field variable> : <Value>})
或是否有替代实现这个功能?
如果我要搜索某个特定领域中的mongodb收集我的命令看起来是这样的:搜索动态场在MongoDB中收集
db.collection.find({ name : "John"})
如果我想打的字段名称动态,命令是什么?
实施例:
db.collection.find({ <Dyanmic field variable> : <Value>})
或是否有替代实现这个功能?
只需使用变量来代替字典键:
name = 'field_name'
db.collection.find({name : "John"})
问题发生,当您试图在不知道数据类型。所以为了解决这个问题,我使用了以下内容:
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
)
我不认为这是对OP问题的回答。尝试着重于他的需要,这将是恕我直言,动态创建一个字典,然后执行'db.collection.find(dinamically_built_dict)'。 – p1100i
您是否想要在代码中使用存储在变量中的字段名称,例如“找到名称存储在变量fieldname的值为'22'的所有文档?或者您想要一次搜索MongoDB中的多个字段名称,例如“找到名称以”duck_''开头的字段值为“44”的所有文档? – wdberkeley