2 Stimmen

Array mit $ aktualisieren funktioniert nicht in mongodb-nativem Nodejs

Meine Mongodb sieht folgendermaßen aus

{ "_id" : ObjectId("4de20ef97065cc77c80541fd"),
"todo" : [
{
"id" : 1,
"desc" : "hi",
"done" : 0
},
{
"id" : 2,
"desc" : "hello",
"done" : 0
}
], "user" : "saturngod" }

Ich aktualisiere die Daten also folgendermaßen.

db.tasks.update({user:'saturngod','todo.id':2},{"$set":{"todo.$.done":1}});

es funktioniert gut in Mongodb-Cli, aber kann nicht in Ihrem Node-Mongodb-native Treiber arbeiten.

Ich habe einen Code wie folgt geschrieben

task_collection.update({user:username,'todo.id':taskId}, {"$set":{"todo.$.done":1}},{safe:true},function(error, result){
            sys.puts("callback user:"+username+"id:"+taskId+"error:"+error);
            if( error ) callback(error,result);
            else callback(null,result)

       });

Fehlerrückgabe Nullwert und Rückruf funktionieren auch. Die Daten wurden jedoch nicht in der Datenbank aktualisiert.

Aktualisiert: Ich habe festgestellt, dass 'todo.id':taskId keine Zeilen finden kann. Es funktioniert in mongo cli aber nicht in mongodb-native nodejs

vollständige Quelle unter : https://github.com/saturngod/tatoo/blob/master/data-provider.js

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X