Javascript 有没有一种方法可以在不使用循环(即以数组为条件)的情况下更新mongodb文档?

Javascript 有没有一种方法可以在不使用循环(即以数组为条件)的情况下更新mongodb文档?,javascript,mongodb,Javascript,Mongodb,这是我的文件 我想通过提供labTestType将请求下的paymentstatus更新为Payment 对象作为数组的列表 试试这个代码这对我有用 db.getCollection('your_collection').findOneAndUpdate( { $and: [ { _id: new ObjectId(_id) }, //_id = "5ef05c35743df0112cbf5729"

这是我的文件

我想通过提供labTestType将请求下的paymentstatus更新为Payment 对象作为数组的列表


试试这个代码这对我有用

    db.getCollection('your_collection').findOneAndUpdate(
      {
        $and: [
          { _id: new ObjectId(_id) },  //_id = "5ef05c35743df0112cbf5729"
          { 'requests.labTestType': { $in: [new ObjectId('5ee752b9e26cbb3440b9259e'), new ObjectId('5ee752b9e26cbb3440b925b5')] } }]
      },
      {
        $set: { 'requests.$.paymentstatus': 'paid' 
      } //set new payment status
  })
这对我来说很管用我的财产少了$


谢谢但是我想像这样提供labTestType ObjectId数组[5ee752b9e26cbb3440b9259e,5ee752b9e26cbb3440b925b5],并一次更新多个字段。感谢Mayur Vaghasiya,代码中的$in属性帮助了很多人,如果接下来的结果是类似于[a,b,c,d,e,f]的字符串数组,您还可以帮助更新结果吗在我的代码中,我使用
findOneAndUpdate
。所以它只返回一个对象。
    db.getCollection('your_collection').findOneAndUpdate(
      {
        $and: [
          { _id: new ObjectId(_id) },  //_id = "5ef05c35743df0112cbf5729"
          { 'requests.labTestType': { $in: [new ObjectId('5ee752b9e26cbb3440b9259e'), new ObjectId('5ee752b9e26cbb3440b925b5')] } }]
      },
      {
        $set: { 'requests.$.paymentstatus': 'paid' 
      } //set new payment status
  })
db.getCollection('your_collection').updateMany(
        {_id: newObjectId(_id)},
        {$set: {"requests.$[element].paymentstatus": "Paid"}},
        { multi:true,
          arrayFilters: [{ "element.labTestType": {$in: arraywithobjectIds}}]
        })