Node.js 为什么更新没有';行不通

Node.js 为什么更新没有';行不通,node.js,mongodb,mongojs,Node.js,Mongodb,Mongojs,我将一个json变量传递给一个模块,但我无法更新我的集合,因为在更新过程中总是会出错 var gestion = function(myJSON) { var dburl = 'localhost/mongoapp'; var collection = ['clientes']; var db = require('mongojs').connect(dburl, collection ); function cliente(nombre, estado, nuevo){

我将一个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;
}

我还尝试删除我的db并再次创建,我确信我的db中存在我的对象。

您应该使用的签名是

update(query, update, callback)
但是您正在为
查询传递一个字符串,这对Mongo没有任何意义。您可能希望查看概览,但对于此特定实例,您似乎正在尝试查找
nombre
等于
client1.nombre
处字符串的文档。对此的查询是一个dictionary
{nombre:client1.nombre}
,因此该行应该是

db.clientes.update({nombre: cliente1.nombre}, {$set: {estado: "desconectado", nuevo: "no"}}, function(err) {

您得到的错误消息是什么?错误:选择器必须是有效的JavaScript对象