0

json 変数をモジュールに渡しますが、コレクションの更新を行うことができません。常に更新時にエラーが発生します。

var gestion = function(myJSON) {
var dburl = 'localhost/mongoapp';
var collection = ['clientes'];
var db = require('mongojs').connect(dburl, collection );

        function cliente(nombre, estado, nuevo){
                this.nombre = nombre;
                this.estado = estado;
                this.nuevo = nuevo; 
        }

        var cliente1 = new cliente(myJSON.nombre myJSON.estado,  myJSON.nuevo);

if (cliente1.estado == "desconectado"){
                db.clientes.update(cliente1.nombre, {$set: {estado: "desconectado", nuevo: "no"}}, function(err) {
                        if (err) console.log("error "+cliente1.nombre);
                        else console.log("OK");
                        });
}

}           

return 0;
}

また、データベースを削除してもう一度作成しようとしましたが、オブジェクトがデータベースに存在することを確信しています。

4

1 に答える 1

2

使用する必要がある署名は

update(query, update, callback)

queryしかし、Mongo にとっては何の意味もない文字列 for を渡しています。概要についてドキュメントを見たいと思うかもしれませんが、この特定の例でnombreは、 が文字列 at と等しいドキュメントを見つけようとしているように見えますcliente1.nombre。これのクエリは辞書{ nombre: cliente1.nombre }なので、その行は

db.clientes.update({nombre: cliente1.nombre}, {$set: {estado: "desconectado", nuevo: "no"}}, function(err) {
于 2013-06-26T05:37:45.330 に答える