我正在嘗試創建羣聊應用程序。但是,當我把相同的ID(字符串)數組,唯一的真正的不工作,相同的ID被添加到數組,我最終以此爲例。我想ID的用戶id數組爲只包含唯一的ID貓鼬獨特真正不工作在字符串數組
{ _id: 5885dc260a6bd22768bef387,
roomName: 'Room1',
author: '587cd401a279b834b0a4cb8d',
__v: 0,
messages: [],
usersIds:
[ 587cd401a279b834b0a4cb8d,
587cd3ed7bd35b37d4c75a36,
587cd3ed7bd35b37d4c75a36 ] }
這是我的房間模式
const roomChat = new Schema({
roomName: String,
author: String,
usersIds:[
{
type: Schema.ObjectId,
unique: true
}
],
messages: [
{
author: String,
text: String,
date: Number
}
]
});
這是我如何將用戶添加到用戶id在特定的房間
app.put('/roomChat', (req, res) => {
GroupChat.findByIdAndUpdate(req.body.roomId, {$push:{usersIds:req.body.userId}},{safe: true},(err,room) => {
console.log(room);
});
});
而不是'$ push',使用'$ addToSet',即'{$ addToSet:{usersIds:req.body.userId}}' – chridam