Tôi đã xem một số câu hỏi trên trang web nhưng vẫn chưa hiểu rõ mình đã làm sai ở đâu. Tôi có một số mã như thế này:
var mongoose = yêu cầu('mongoose'),
db = mongoose.connect('mongodb://localhost/lastfm'),
Sơ đồ = mongoose.Sơ đồ,
Người dùng = Sơ đồ mới({
nick: Chuỗi,
hmask: Chuỗi,
lastfm: Chuỗi
});
var UserModel = mongoose.model('Người dùng', Người dùng);
//Đăng ký người dùng vào mongodb
var reg_handler = hàm (hành động) {
// nên thêm một mục mới vào db nếu nick (act.nick) && hmask (act.host)
// chưa có trong db. Nếu không, hãy cập nhật mục nhập khớp với nick
// hoặc hostmask với tên lastfm mới (act.params)
};
var get_handler = hàm (hành động) {
UserModel.find({ nick: act.params }, hàm (err, người dùng) {
nếu (lỗi) { console.log(lỗi) };
users.forEach(hàm (người dùng) {
console.log('url cho người dùng là 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 một cách chính xác. Tôi đã thử rất nhiều cách và không thể hoàn tác mọi thứ tôi đã thử. Việc này chiếm gần hết thời gian ban đêm của tôi và tôi muốn nó phải có hiệu quả.
Đây gần như là những gì tôi muốn, tôi tự hỏi liệu có cách nào để thực hiện điều này không .cập nhật()
HOẶC trong phần điều kiện
var reg_handler = hàm (hành động) {
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 chơi với nó.
var reg_handler = hàm (hành động) {
UserModel.update({ $or: [{nick: act.nick}, {hmask: act.host}] }, { $set: { lastfm: act.params } }, { upsert: true }, function(){});
};
Đây chính xác là điều tôi muốn, chỉ một dòng thôi. :D Hoàn hảo!
Tôi là một lập trình viên xuất sắc, rất giỏi!