首页 > 解决方案 > 未找到的查找中的 Mongo Upsert $in 值

问题描述

我必须为链接到 supervisorId 的员工 id 运行 mongo 更新(这过于简单化了,但它是我需要的要点)。查找使用员工 ID 列表,如果找不到员工 ID,我有一个 upsert 来添加数据。但是问题是我没有在 upsert 中获取员工 ID。是否可以从 $in 数组中插入值?

例如:

db.collection.update({
 empId:{
      $in:['EMP1','EMP2','EMP3']
    }
 }, 
 {$set: {SupervisorId:'SUP25'}}, 
 {upsert:true},
 {multi:true})

如果我运行这个查询,我会得到一个带有 _id 和 SupervisorId 的新文档:

{
    "_id" : ObjectId("5e56ece8b0ae3537d0261ghg"),
    "SupervisorId" : "SUP25"
}

我想在我的 upserts 中得到这个:

{
    "_id" : ObjectId("5e56ece8b0ae3537d0261ghg"),
    "SupervisorId" : "SUP25"
    "EmpId": "EMP1"
}

我仍然对 mongo 感到满意,但这甚至可以通过 upsert 实现吗?如果不可能,是否有类似的选择?MongoDB 版本 2.9.1

标签: mongodb

解决方案


推荐阅读