Javascript 如果mongodb中的数组中存在数组,请删除该数组
我需要一个查询来检查rcReveiws数组中是否存在dField数组键。如果它存在,则它必须删除dField数组,并且其他内容应该存在,只有dField数组应该被删除您可以使用下面的查询。它已经用您提供的数据进行了测试Javascript 如果mongodb中的数组中存在数组,请删除该数组,javascript,mongodb,mongodb-query,aggregation-framework,Javascript,Mongodb,Mongodb Query,Aggregation Framework,我需要一个查询来检查rcReveiws数组中是否存在dField数组键。如果它存在,则它必须删除dField数组,并且其他内容应该存在,只有dField数组应该被删除您可以使用下面的查询。它已经用您提供的数据进行了测试 { "_id" : ObjectId("5cca927ed5494b0"), "userName": "1234", "rcReviews": [{ "userName": "qwert", "finalReview": "qtrwyw",
{
"_id" : ObjectId("5cca927ed5494b0"),
"userName": "1234",
"rcReviews": [{
"userName": "qwert",
"finalReview": "qtrwyw",
"dField": [{
"name": "t2",
"status": "Not Verified",
"reviewComment": "asdfag"
},
{
"status": "Not Verified",
"reviewComment": "asegqrt",
"name": "t13"
},
{
"name": "c452",
"status": "Not Verified",
"reviewComment": "gaeqrtqa "
},
{
"status": "Not Verified",
"reviewComment": "tyqiqooqa",
"name": "c13"
}
]
},
{
"userName": "1517",
"finalReview": "wsywx",
"dField": [{
"status": "Not Verified",
"reviewComment": "aswrrwgqrt",
"name": "t113"
},
{
"name": "c1516",
"status": "Not Verified",
"reviewComment": "gaeqredectqa "
},
]
}
]}
更改集合名称以匹配您的集合名称。
该查询检查
rcReviews
数组中是否包含dField
属性的记录。它更新该数组中的所有对象,并使用unset删除dField
属性。您可以使用下面的查询。它已经用您提供的数据进行了测试
{
"_id" : ObjectId("5cca927ed5494b0"),
"userName": "1234",
"rcReviews": [{
"userName": "qwert",
"finalReview": "qtrwyw",
"dField": [{
"name": "t2",
"status": "Not Verified",
"reviewComment": "asdfag"
},
{
"status": "Not Verified",
"reviewComment": "asegqrt",
"name": "t13"
},
{
"name": "c452",
"status": "Not Verified",
"reviewComment": "gaeqrtqa "
},
{
"status": "Not Verified",
"reviewComment": "tyqiqooqa",
"name": "c13"
}
]
},
{
"userName": "1517",
"finalReview": "wsywx",
"dField": [{
"status": "Not Verified",
"reviewComment": "aswrrwgqrt",
"name": "t113"
},
{
"name": "c1516",
"status": "Not Verified",
"reviewComment": "gaeqredectqa "
},
]
}
]}
更改集合名称以匹配您的集合名称。
该查询检查
rcReviews
数组中是否包含dField
属性的记录。它更新该数组中的所有对象,并使用unset删除dField
属性!你试过什么?db.newcopy.updateMany({“rcReviews”:{“$elemMatch”:{“$elemMatch”:{“dField”:{“$exists”:true}}}}}}}},{“$unset”:{“rcReviews.$[].$[].dField”:“}}})我试过这样做。谢谢你的回复!你试过什么?db.newcopy.updateMany({“rcReviews”:{“$elemMatch”:{“$elemMatch”:{“dField”:{“$exists”:true}}}}}}}},{“$unset”:{“rcReviews.$[].$[].dField”:“}}})我试过这样做。谢谢你的回复,谢谢阿披舍克·科塔里。我还有一个疑问,如果我想删除数组中的另一个键,并且该键是type object,那么如果我更改名称,就足够了,不需要更改整个查询??谢谢Abhishek Kothari。我还有一个疑问,如果我想删除数组中的另一个键,并且该键是type object,那么如果我更改名称,就足够了,不需要更改整个查询??