MongoDB更新查询嵌套数组

MongoDB更新查询嵌套数组,mongodb,mongodb-query,spring-data-mongodb,mongodb-update,Mongodb,Mongodb Query,Spring Data Mongodb,Mongodb Update,我有一个典型电影院的数据结构: { "_id": ObjectId("5bdadf3k28ds2sdfdasbf321"), "seats": [ [ { "status": "VACANT", "code": "1A" },

我有一个典型电影院的数据结构:

{ 
      "_id": ObjectId("5bdadf3k28ds2sdfdasbf321"),
      "seats": [
        [
          {
            "status": "VACANT",
            "code": "1A"
          },
          {
            "status": "VACANT",
            "code": "1B"
          }
        ],
        [
          {
            "status": "VACANT",
            "code": "2A"
          },
          {
            "status": "VOID",
            "code": "2B"
          }
        ]
      ]
}
当且仅当座椅状态为“空闲”时,我如何创建更新mongoDB命令以将代码为“1A”和“2A”的座椅更新为“take”

我到处浏览了一下,但还没有完全弄清楚

我可以做如下的事情吗

db.coll.update({}, {$set: {“seats.$[i].$[j].status”: "TAKEN"}}, {arrayFilters: [{“j.code”: "1A"}, {“j.code”: "2A"}]})

使用
db.coll.update({},{$set:{“seats.$[].$[j].status:“take”},{arrayFilters:[{“j.code:{$in:[“1A”,“2A”]}}}})
如果您想要j的多个条件,请使用
db.coll.update({},{$set:{“seats.$[].$.[].$[[[[]j].status:“take”},{$in:[{1A”,“2A”},{arrayFilters:[[j.code:{$in:[]1A”,“2A]状态:{}}}}})
waw有效。感谢您的帮助,但似乎如果没有代码1A状态为空的座位,查询仍会返回为成功…我需要它返回一个错误,如果它找不到我要更新的内容,它将始终返回为成功,您需要使用writeResult中的
nModified
from writeResult检查是否有任何记录被修改。使用
db.coll.update({},{$set:{“seats.$[].$[j].status:“take”},{arrayFilters:[{“j.code:{$in:[“1A”,“2A”]}}}})
如果您想要j的多个条件,请使用
db.coll.update({},{$set:{“seats.$[].$.[].$[[[[]j].status:“take”},{$in:[{1A”,“2A”},{arrayFilters:[[j.code:{$in:[]1A”,“2A]状态:{}}}}})
waw有效。感谢您的帮助,但似乎如果没有代码1A状态为空的座位,查询仍会返回为成功…我需要它返回一个错误,如果它找不到我要更新的内容,它将始终返回为成功,您需要使用writeResult中的
nModified
from writeResult检查是否有任何记录被修改。