NodeJS 如何将多嵌套子文档字段状态更新为true或false

4urapxun  于 2023-01-12  发布在  Node.js
关注(0)|答案(2)|浏览(133)

我需要更新多个嵌套的子文档字段,其中eid:单据状态63b3f577763b3f5777设置为真或假,
我尝试updateMany查询,但它不起作用...
我知道我的模式更加嵌套,但我没有其他选择
这是我的文档模型

{
"_id":"63b3b63b3f57774024"
"name":"dev"
"email":"dev@gmail.com"
"image":"https://sgp1.digitaloceanspaces.com"

"tickets":[
{
"sid":"63b363b3f5777f5768"
"eid":"63b3f577763b3f5777"
"name":"john"
"status":false
_id:{
"$oid":"63b463b3f5777178c4"
}
},
{
"sid":"63b363b3f5777f5769"
"eid":"63b3f577763b3f5777"
"name":"viswam"
"status":false
"_id":{
"$oid":"63b463b3f5777178c5"
}
{
"sid":"63b63b3f57773f5770"
"eid":"63b3f577763b3f5777"
"name":"dev"
"status":false
"_id":{
"$oid":"63b63b3f57774178c6"
}
{
"sid":"63b63b3f57773f5771"
"eid":"63b3f577763b3f5777"
"name":"kumar"
"status":false
"_id":{
"$oid":"63b463b3f5777178c7"
}
""__v":0
}]

我需要更新tickests.status为真或假。如何检查此字段?
谁能告诉我找到这个的确切查询?
规格

  • 节点:v14.17.3,
  • Mongoose :“^6.6.5”,
  • 蒙古b:阿特拉斯
py49o6xq

py49o6xq1#

请尝试以下代码:

db.collections.updateMany(
  { "tickets": { "$elemMatch": { "eid": "63b3f577763b3f5777" } } }
  { "$set": { "tickets.$.status": false } }
)

如果您有任何疑问,请告诉我

6yt4nkrj

6yt4nkrj2#

db.collections.updateMany
({"tickets.eid":"63b3f577763b3f5777"},
{"$set":{"tickets.$[elem].status":"false"}},
{"arrayFilters": [{"elem.eid":"63b3f577763b3f5777"}]
})

相关问题