gpt4 book ai didi

javascript - 查找 2 id 在 Mongoose 数组中的位置

转载 作者:行者123 更新时间:2023-12-04 09:15:52 24 4
gpt4 key购买 nike

我正在尝试创建一个中间件,它将检查数据库中是否存在 2 个用户之间的对话,如果不存在,它将创建一个新对话。我正在尝试将 moongoose $in 与用户的 2 个 ID 一起使用,但它会返回包含任何 ID 的任何对话,我只需要检索 ID 一起包含在用户数组。

Chat.findOne({
users: {
$in: [
mongoose.Types.ObjectId(MYUSER),
mongoose.Types.ObjectId(OTHERID2),
],
},
})

假设 “MYUSER”“RANDOMID” 进行对话,然后我开始与 “OTHERID2” 进行新对话, mongoose 检测到 "MYUSER" 已经开始对话,但它不会检查对话是否在 2 个用户之间。

聊天架构

  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" }],
});

最佳答案

您需要将 $in 替换为 $all仅当所有指定值都包含在数组中时才返回 true:

Chat.findOne({
users: {
$all: [
mongoose.Types.ObjectId(MYUSER),
mongoose.Types.ObjectId(OTHERID2),
],
},
})

关于javascript - 查找 2 id 在 Mongoose 数组中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63220206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com