【发布时间】:2020-08-03 04:07:53
【问题描述】:
我正在尝试创建一个中间件,该中间件将检查数据库中是否存在 2 个用户之间的对话,如果不存在,它将创建一个新对话。我正在尝试将 moongoose $in 与用户的 2 个 id 一起使用,但它会返回包含任何 id 的任何对话,我只需要检索其中 id 一起包含在 users 数组中的对话。
Chat.findOne({
users: {
$in: [
mongoose.Types.ObjectId(MYUSER),
mongoose.Types.ObjectId(OTHERID2),
],
},
})
假设"MYUSER" 与"RANDOMID" 进行了对话,然后我开始与"OTHERID2" 进行新对话,猫鼬检测到"MYUSER" 已经开始对话,但它不会检查对话是否两个用户之间。
聊天架构
const chatSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
lastMessage: { type: String },
updatedOn: { type: Date, default: Date.now },
users: [{ type: mongoose.Schema.Types.ObjectId, ref: "User" }],
});
【问题讨论】:
标签: javascript node.js mongodb mongoose