(CherryPy 프레임 워크를 사용하여) MongoDB를 개체에서 포함 된 값을 검색합니다내가 MongoDB의에서 다음 문서를 삽입 한
@cherrypyexpose
def create(self):
client = MongoClient()
db = client.database_name
result = db.users.insert_one({
"email": "[email protected]",
"company": {
"name": "ABC Company"
}
})
지금은 "ABC 회사"입니다 company.name를 검색하고 싶습니다.
@cherrypy.expose
def result(self):
client = MongoClient()
db = client.database_name
cursor = db.users.find({"email":"[email protected]"})
for document in cursor:
value = document["company.name"]
return value
나는 다음 구문 내가 관계형 데이터베이스에서하는 것처럼 "company.name"를 사용하여이 값을 검색 할 시도했지만이 오류 받고 있어요 :
"KeyError: 'company.name'"
은 무엇에 대한 올바른 구문 것을 Mongo에서 "company.name"을 검색 하시겠습니까?
'dB = client.database_name'와'db.users.insert_one' 나쁜 아이디어 왜냐하면 모음이있는 경우 dB는, 존재하는 경우 경우 중복 아래 키 등 또 다른 점은'cursor.db.collection.some_variables.find_one ({ '_ id': 'entry'})'와 동등한'cursor [db] [collection] [some_variable] [entry] [some values]''그래서 mongo db 복수의 콜렉션 명을 허가하지 않는다 (이것은 유효한'tree' 메소드가 아닙니다). 커서 [db_name] [collection_name]'삽입, 삭제, 업데이트 ' – dsgdfg
@dsgdfg ['cursor [db] [collection]'은'cursor.db.collection'와 같지 않습니다.] (http://stackoverflow.com/questions/) 41262707/in-mongoshell-able-to-my-collection-db-collection-name-return-n) – styvane
사실,'cursor.db'는 정적이어서 큰 트리에서는 유용하지 않습니다. 그렇지 않으면 항목을 검색/쓰는 데 필요한 많은 키와 값을 정의해야합니다. 원본 DB를 변경하려면 커서를 닫고 다시 열어야합니다. – dsgdfg