Meine Hauptabsicht ist es, dynamisch ändern die Mitarbeiter Sammlung während der Verwendung von Pymongo, und ich konnte es für einfügen Befehle, ich habe Probleme mit dem Befehl find, egal was ich exec () gibt immer None zurück. aber wenn ich die Zeichenfolge kopieren und ausführen, wird der Wert der Variablen zugewiesen.Ersetzen von Variablen Wert in Mongodb-Anweisung
kann jemand etwas Licht darauf werfen, warum die exec nicht in der Lage ist, eine Ergebnismenge zurückzugeben oder die Ergebnismenge einer Variablen zuzuordnen?
db.Employees.update_one(
{"id": criteria},
{
"$set": {
"name":name,
"age":age,
"country":country
}
}
)
from pymongo import MongoClient
import ast
client = MongoClient('localhost:27017')
db = client.TextClassifier
Einsatz arbeitet
def mongo_insert_one(COLLECTION_NAME, JSON):
QUERY = """db.%(COLLECTION_NAME)s.insert_one(%(JSON)s)""" % locals();
exec(QUERY)
def mongo_retrive(COLLECTION_NAME, JSON):
resultset = None
query = """resultset = db.%(COLLECTION_NAME)s.find(%(JSON)s)""" % locals();
return resultset
print(mongo_retrive('hungry_intent', "{'Intent':'Hungry'}"))
weder diese
dies nicht funktionieren würde für einen ganz anderen Grund funktionieren würde, heißt es Wenn Sie Methode, um die ‚Einheimischen‘ nennen soll auf Ein 'Datenbank' -Objekt schlägt fehl, weil keine solche Methode existiert.
resultset = db.locals()[COLLECTION_NAME].find()
'def mongo_insert_one (COLLECTION_NAME, JSON): db [COLLECTION_NAME] .insert_one (JSON) def mongo_retrive (COLLECTION_NAME, JSON): resultset = db [SAMMLUNG_NAME] .find (JSON) ' Vielen Dank. –