(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を取得したいと思います。
私は、リレーショナル・データベースに行うように、次の構文「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
:"KeyError: 'company.name'"
に正しい構文になりますどのようなMongoで "company.name"を取得しますか?
'デシベル= client.database_name'とDBがある場合は、コレクションが存在する場合、重複などの下にキー場合' db.users.insert_one'は悪いアイデアのCoSで、存在であるべきもう一つのポイントは、 'cursor.db.collection.some_variables.find_one({'_ id': 'エントリ'})'と同じです ''カーソル[db] [コレクション] [some_variable] [エントリ] [いくつかの値] ''だからmongo db複数のコレクション名を許可しないでください(これは有効な 'tree'メソッドではありません)。カーソル[db_name] [collection_name] '挿入、削除、更新 ' – dsgdfg
@dsgdfg [' cursor [db] [collection] 'は' cursor.db.collection'と等しくありません。](http://stackoverflow.com/questions/ 41262707/in-mongoshell-connect-to-my-collection-db-collection-name-return-n) – styvane
True、 'cursor.db'は静的であり、大きなツリーに対しては有用ではありません。さもなければ、項目を検索/書込みするためのロットキーと値を定義する必要があります。ソースdbを変更する場合は、カーソルを閉じて再度開く必要があります。 – dsgdfg