我有一个要求,我的comments
架构如下所示
{
"_id": 1,
"comments": [
{ "userId": "123", "comment": "nice" },
{ "userId": "124", "comment": "super"}
]
}
我想根据以下内容提取元素userId
场地。
我正在执行以下查询
comments.update({},{$pull:{comments:{userId:"123"}}})
我的要求是,如果在拉操作符之后数组长度变为零,我需要出于某种原因删除整个文档。是否有办法在单个查询中执行此操作?
PS:我使用的是mongodb驱动程序,而不是mongoose
如果我没看错你的问题,那么之后$pull
,如果comments
数组为空(零长度),然后删除文档({ _id: '', comments: [] }
).
这应该删除所有文件comments
数组存在且为空:
comments.remove({ comments: { $exists: true, $size: 0 } })
我有类似的要求并使用了这个(使用mongoose
尽管):
await Attributes.update({}, { $pull: { values: { id: { $in: valueIds } } } }, { multi: true })
await Attributes.remove({ values: { $exists: true, $size: 0 } })
不确定是否可以通过一次操作来完成此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)