mongodb – MongoError:无法推断要设置的查询字段,路径’users’匹配两次

我正在使用猫鼬.我想创建一个与数组用户(包括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}
        ]
  }......
}
点赞