在Mongodb中使用更新查询时从数据库中拾取内容?

在Mongodb中使用更新查询时从数据库中拾取内容?,mongodb,Mongodb,我想更新所有数据库:- 他们的模型如下: { "_id" : ObjectId("593800da81dd4240d42f0c98"), "leaveType" : ObjectId("5927da8b7094b726fecaa3b5"), "units" : 20, "employee" : ObjectId("59283f772c3bd82eaca28153"), "__v" : 0 } 我想要的是,用插入新值作为unitsAvailed更新所有模型

我想更新所有数据库:-

他们的模型如下:

{
    "_id" : ObjectId("593800da81dd4240d42f0c98"),
    "leaveType" : ObjectId("5927da8b7094b726fecaa3b5"),
    "units" : 20,
    "employee" : ObjectId("59283f772c3bd82eaca28153"),
    "__v" : 0
}
我想要的是,用插入新值作为
unitsAvailed
更新所有模型,使其与相应的单元编号相同

{
    "_id" : ObjectId("593800da81dd4240d42f0c98"),
    "leaveType" : ObjectId("5927da8b7094b726fecaa3b5"),
    "units" : 20,
    "unitsAvailed" : 20,
    "employee" : ObjectId("59283f772c3bd82eaca28153"),
    "__v" : 0
}

您可以使用此查询更新所有文档

var cursor = db.collectionName.find({});
cursor.forEach(function(data) {
  data.unitsAvailed = data.units;
  data.save();
});

您可以使用db.eval()运行服务器端代码

 db.eval(function() { 
  db.collection.find({tag : "refurb"}).forEach(function(e) {
    e.Price = e.Price * 0.5;
    db.collection.save(e);
  });
});
请参见

您可以使用:

 db.collectionName.updateMany({},{$set:{unitsAvailed: 20}})

我想直接查询mongo shell。这样行吗place@hardy如果您获得授权,您可以在mongo shell上执行此操作。