1
我想追加一個字符串到一個數組,將用於識別多個聊天室中的用戶。我已經嘗試過,無法讓這個工作。日誌不熄什麼,但:追加到數組nodejs mongodb
[]
if (req.body.method == "setid") {
if(req.locals.user.chatid == null){
req.locals.user.chatid = {};
}
app.model.User.update(
{ _id: req.locals.user._id },
{ $addToSet: { chatid: [{mid: req.body.value}]} }
);
} else if (req.body.method == "checkid" && req.body.value) {
app.model.User.find({
"chatid": req.body.value
}, function(err, FoundUser) {
if (err || !FoundUser) {
res.end("ERROR");
} else {
console.log(FoundUser);
res.end(FoundUser[0].displayName);
}
});
}
蒙戈結構
{
email: { type: String, index: { unique: true }, required: true },
password: { type: String },
changeName: {type: Boolean},
displayName: { type: String, index: { unique: true }, required: true },
avatar: { type: String, default: '/assets/anon.png' },
permissions: {
chat: { type: Boolean, default: true },
admin: { type: Boolean, default: false }
},
online: { type: Boolean, default: true },
channel: { type: Types.ObjectId, ref: 'Channel', default: null }, //users channel
banned: { type: Boolean, default: false },
banend: {type:String, default: ''},
subs: [{ type: Types.ObjectId, ref: 'User' }],
about: { type: String },
temporary: {type: Boolean, default: false},
chatid:[{mid: {type:String}}]
}
我照你說的去做了。我修改代碼,如下所示: \t \t \t \t app.model.User.update( \t \t \t \t {_id:req.locals.user._id}, \t \t \t \t {$ addToSet:{chatid: {中期:req.body.value}}}, \t \t \t \t功能(ERR,結果){ \t \t \t \t \t如果(結果) \t \t \t \t \t \t console.log(result); \t \t \t \t \t} \t \t \t \t); 之後,setid正在工作。我感謝你的幫助,並發現它絕對有用。 – Justin
我修改後的代碼如下: app.model.User.find({ 「chatid」:{$ elemMatch:{ 「_id」:req.body.value}}} 。 代碼現在工作完全我很欣賞你幫助!注意:中間改爲_id。 – Justin