Почему обновление не работает
Я передаю переменную 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;
}
Я также попытался удалить свою БД и создать еще один раз, и я уверен, что мой объект существует в моей БД.
1 ответ
Решение
Подпись, которую вы должны использовать,
update(query, update, callback)
но вы передаете строку для query
, что ничего не значит для Монго. Возможно, вы захотите взглянуть на документы для обзора, но для этого конкретного случая, похоже, вы пытаетесь найти документ, где nombre
равно строке в cliente1.nombre
, Запрос на это словарь { nombre: cliente1.nombre }
так что строка должна быть
db.clientes.update({nombre: cliente1.nombre}, {$set: {estado: "desconectado", nuevo: "no"}}, function(err) {