에 동적 필드에 대한 검색MongoDB를 수집
db.collection.find({ name : "John"})
내가 필드 이름을 동적으로 만들려면, 명령은 무엇입니까?
예 :
db.collection.find({ <Dyanmic field variable> : <Value>})
또는이 기능을 달성하기위한 대안이 있는가?
에 동적 필드에 대한 검색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의 질문에 대한 대답이라고 생각하지 않는다. IMHO가 동적으로 dict를 생성하고'db.collection.find (dinamically_built_dict)'를 실행할 필요성에 집중하십시오. – p1100i
코드에 변수에 저장된 필드 이름을 사용하고 싶습니까? "필드 이름이'fieldname' 변수에 저장되어있는 필드가'22' 인 모든 문서를 찾으십니까? 또는 한 번에 MongoDB의 여러 필드 이름을 검색하려고합니다. " 'duck_''로 시작하는 필드의 값이'44' '인 모든 문서를 찾으십니까? – wdberkeley