我正在使用猫鼬.我想创建一个与数组用户(包括userId1,userId2)的文档聊天,如果我找不到它:
这是我的方式:
ChatModel.findOneAndUpdate(
{ users: { $all: [userId1, userId2] }},
{ $setOnInsert: {
users: [userId1, userId2]
}},
{ upsert: true })
.exec()
.catch(err => console.log(err));
但是我得到了错误:
MongoError: cannot infer query fields to set, path ‘users’ is matched
twice
这是聊天架构:
{
users: [{ type: Schema.Types.ObjectId, ref: 'User' }],
createdAt: { type: Date, default: Date.now }
}
我该怎么做才能正确?谢谢
最佳答案 我用这个作为条件
{
"users": {
$all: [
{"$elemMatch": userId1},
{"$elemMatch": userId2}
]
}......
}