Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
149
rated 0 times [  155] [ 6]  / answers: 1 / hits: 29986  / 13 Years ago, mon, march 12, 2012, 12:00:00

I've looked at some of the questions on the site and haven't quite figured out what I'm doing wrong. I've some code like this:



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);
});
});
};


I'm not sure what I should be doing in the middle there to get it to update the database properly. I've tried quite a few things, can't undo to find out all what I've tried though. It's taken a large portion of my night and I want it working.



This is almost what I want, I wonder if there is any way to do an OR in the conditions part of the .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(){});
};


I will keep toying around with it.


More From » node.js

 Answers
55
var reg_handler = function (act) {
UserModel.update({ $or: [{nick: act.nick}, {hmask: act.host}] }, { $set: { lastfm: act.params } }, { upsert: true }, function(){});
};


This does exactly what I wanted, and it's one line. :D Perfect!


[#86913] Saturday, March 10, 2012, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
johnnyblaynes

Total Points: 667
Total Questions: 121
Total Answers: 102

Location: Anguilla
Member since Sat, Jan 23, 2021
3 Years ago
johnnyblaynes questions
;