He consultado algunas de las preguntas en el sitio y todavía no me he dado cuenta de lo que estoy haciendo mal. Tengo algo de código como esto:Mangosta actualización/upsert?
var mongoose = require('mongoose'),
db = mongoose.connect('mongodb://localhost/lastfm'),
Schema = mongoose.Schema,
User = new Schema({
nick: String,
hmask: String,
lastfm: String
});
var UserModel = mongoose.model('User', User);
//Register user to mongodb
var reg_handler = function (act) {
// should add a new entry to the db if nick (act.nick) && hmask (act.host)
// aren't already in the db. Otherwise, update the entry that matches nick
// or hostmask with the new lastfm name (act.params)
};
var get_handler = function (act) {
UserModel.find({ nick: act.params }, function (err, users) {
if (err) { console.log(err) };
users.forEach(function (user) {
console.log('url for user is http://url/' + user.lastfm);
});
});
};
No estoy seguro de lo que debería estar haciendo en el medio hay conseguirlo para actualizar la base de datos correctamente. He intentado bastantes cosas, pero no puedo deshacerme de averiguar todo lo que he intentado. Me ha tomado una gran parte de mi noche y quiero que funcione.
Esto es casi lo que quiero, me pregunto si hay alguna manera de hacer una o en las condiciones de la parte .update()
var reg_handler = function (act) {
var lfmuser = { nick: act.nick, hmask: act.host, lastfm: act.params };
UserModel.update({ nick: act.nick }, { $set: lfmuser }, { upsert: true }, function(){});
};
Voy a seguir jugando un poco con él.
Es posible que desee agregar algún control de errores a esa última función;) – staackuser2