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)

但是你传递了一个字符串 for query,这对 Mongo 没有任何意义。您可能想查看文档以获取概述,但对于此特定实例,您似乎正在尝试查找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 回答