MongoDB 使用限制和跳过进行更新

问题描述 投票:0回答:2

在 Mongoose 中,我需要以尽可能快的方式执行以下操作:

  1. 通过查询查找文档
  2. 使用 limit() 和skip()
  3. 用相同的值更新所有找到的记录中的字段

你有什么建议?

mongodb mongoose
2个回答
3
投票

您可以获取记录,然后将所有记录的 id 放入一个数组中,然后 使用

$in

更新它们
async function someAsyncFunction(){ 

    let foundData= await collection.find(query).skip().limit();
    let IDs=[];

    foundData.forEach(element=>{
     IDs.push(element._id);
       });

   return Collection.update(
                     {_id: { $in: IDs}}, 
                     { $set: {"fieldToUpdate": "value"}},
                     { multi: true }
                     );
}

0
投票

异步 updateRecordFunction(()=>{ return wait Collection.update({_id: { $in: wait collection.find(query, {_id:1}).skip().limit().lean()?.map((data)=> data?. _ID)}}, { $set: {"fieldToUpdate": "value"}}, { 多:真 } ); })

© www.soinside.com 2019 - 2024. All rights reserved.