programing

파이썬을 사용하여 문자열을 사용하여 MongoDB에 _id를 쿼리하는 올바른 방법은 무엇입니까?

linuxpc 2023. 7. 10. 22:07
반응형

파이썬을 사용하여 문자열을 사용하여 MongoDB에 _id를 쿼리하는 올바른 방법은 무엇입니까?

저는 피몽고 드라이버를 사용하고 있습니다.다음과 같이 문자열을 사용하여 문서의 _id 필드를 쿼리할 수 있습니다.

thing = db.things.find_one({'_id':'4ea113d6b684853c8e000001'})

하지만 효과가 없습니다.내가 뭘 잘못하고 있는 거지?

다음과 같아야 합니다.

from pymongo.objectid import ObjectId   
thing = db.things.find_one({'_id': ObjectId('4ea113d6b684853c8e000001') })

편집: 현재 가져오기는 다음과 같습니다.from bson.objectid import ObjectId

파이몽고는 구조를 바꿨습니다. ObjectID에서 더 이상 가져오지 않음pymongo단, 에서.bson이제 다음과 같이 해야 합니다.

from bson.objectid import ObjectId
thing = db.things.find_one({'_id': ObjectId('4ea113d6b684853c8e000001')})

pypi/pymongo에 따라 "bson" 패키지를 설치하지 마십시오.PyMongo는 자체 bson 패키지와 함께 제공되며, "pip install bson"을 수행하면 PyMongo와 호환되지 않는 타사 패키지가 설치됩니다.

인쇄 방법:

import pymongo
from bson.objectid import ObjectId    
print(db.things.find_one({'_id': ObjectId('4ea113d6b684853c8e000001')}))

인쇄하지 않으려면 다른 변수에 저장

thing = db.things.find_one({'_id':ObjectId('4ea113d6b684853c8e000001')})효과가 있어야 합니다.

PyMongo 문서가 현재 버전과 동기화되지 않은 것 같습니다.ObjectId는 이제 bson.objectid 네임스페이스 아래에 있습니다.제 기억이 맞다면, 버전 2.3 이후로 그렇게 되어 있습니다.bson.objectid 가져오기 ObjectId에서 사용합니다.

언급URL : https://stackoverflow.com/questions/7846001/what-is-the-correct-way-to-query-mongodb-for-id-using-string-by-using-python

반응형