【发布时间】:2022-08-05 03:45:30
【问题描述】:
enter code here到目前为止,在我尝试之后,我想出了解决方案,如果该对象具有空值字段,我可以删除数组内的整个对象。这在我的情况下不起作用。我只需要删除字段并保留对象的其余部分。在这种情况下,“评论”字段是偶尔有空值的字段。提前致谢!
结构:
someArray [
{
field1:\"value\",
field2:\"value\",
Comment:\"\",
Answer:\"\",
}, { field1:\"值\", 字段2:\“值\”, 评论:\”\”, 回答:\”\”,
}]
代码:
$project: {
someArray: {
$filter: {
input: \"$someArray\", as: \"array\",
cond: { $ne: [ \"$$array.Comment\", \"\"]}}}}
-
而不是
$filter尝试使用$map运算符。并且,使用$$REMOVE系统变量来删除一个字段。 -
您要永久更新文档还是特定于读取操作?
-
我试过了,但如果 \"Comment\": \"\" 会删除整个对象。具体到读操作。谢谢!
-
如果我使用 $map 而不是 $filter cond 成为无法识别的参数
-
@prasad_ 我认为
$$REMOVE只删除整个字段而不是数组中的单个元素。
标签: mongodb aggregation-framework