Tôi đã xem xét một số câu hỏi trên trang web và không tìm ra những gì tôi đang làm sai. Tôi có một số mã như sau:Mongoose update/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);
});
});
};
Tôi không chắc mình nên làm gì ở giữa để cập nhật cơ sở dữ liệu đúng cách. Tôi đã thử một vài điều, không thể hoàn tác để tìm hiểu tất cả những gì tôi đã thử mặc dù. Nó chiếm một phần lớn trong đêm của tôi và tôi muốn nó hoạt động.
này là gần như những gì tôi muốn, tôi tự hỏi nếu có cách nào để làm một HOẶC trong điều kiện một phần của .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(){});
};
tôi sẽ tiếp tục đùa giỡn đùa với nó.
Bạn có thể muốn thêm một số lỗi xử lý cho chức năng cuối cùng;) – staackuser2