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(結果)。 \t \t \t \t \t} \t \t \t \t)。 そうした後SETIDは今働いています。私はあなたの助けに感謝し、それが絶対に有用であることがわかりました。 – Justin
私のようにコードを修正:私は本当にあなたに感謝 コードは今、完全に動作します。app.model.User.find({req.body.value}} "chatid":{$ elemMatch::{ "_id"} ヘルプ!注:midを_idに変更しました。 – Justin