从嵌入式文档中删除字段

马里奥

我正在尝试执行一个非常简单的脚本,以从文档中删除所有空值。该文档具有以下结构:

{ "_id" : ObjectId("5a75caa4ce7a49e7d8474a40"), 
"icao" : "MLA", 
"name" : "40-Mile Air", 
"callsign" : "MILE-AIR", 
"country" : "US", 
"alid" : 10, 
"mode" : "F", 
"active" : "Y", 
"routes" : [ { "codeshare" : "", 
    "dst_ap" : "TKJ", 
    "dst_apid" : 7235, 
    "equipment" : "CNA", 
    "rid" : 46585 } ]

我正在执行的脚本是这样的:

db.airlines.updateMany(
{ codeshare: "" },
{ $unset: {codeshare : 1}},
)

但是,运行后出现此错误:

2018-02-07T10:17:35.634+0000 E QUERY    [thread1] SyntaxError: missing : after property id @(shell):3:21
克列丹

在更新中将$unset运算符与$位置运算符一起应用以删除嵌入codeshare字段。

$位置操作者将确定阵列更新的正确元而不显式指定数组中元素的位置,从而最终update语句应该是这样的:

db.airlines.updateMany(
    { "routes.codeshare": "" }, 
    { "$unset": { "routes.$.codeshare": 1 } }
)

对于数组中的多个元素,请使用过滤后的位置运算符$[<identifier>],该运算符标识与arrayFilters条件匹配的数组元素:

db.airlines.updateMany(
   { "routes.codeshare": "" }, 
   { "$unset": { "routes.$[element].codeshare" : 1 } },
   { "arrayFilters": [ { "element.codeshare": "" } ] }
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

mgo,mongodb:从嵌入式结构中查找与一个字段匹配的文档

如何从symfony 2控制器中删除嵌入式表单中的表单字段

将嵌入式文档插入到mongodb文档中的新字段

计算嵌入式文档/数组中字段的平均值

mongo db中嵌入式文档中的条件聚合

Mongo查询嵌入式文档中的动态字段

基于范围查询MongoDB中嵌入式文档的数组

在MongoDB中排除嵌入式文档中除单个字段之外的所有字段

如何在数组中的嵌入式文档中指定/投影字段?

MongoDB-在嵌入式文档中找不到特定字段

按嵌入式文档字段排序

查询Spring Data MongoDB中嵌入式文档的数组

如何在嵌入式文档中查找某个元素

更新mongodb中arrays对象的arrays的嵌入式文档

MongoDB C#驱动程序-更新嵌入式文档数组中的所有字段

是否有任何查询通过检查mongoDb中嵌套的嵌入式文档的字段来查找文档

Spring Data Mongo-在嵌入式文档中应用唯一的组合字段

聚合管道中的嵌入式文档集合中的参考文档字段

Mongo嵌入式文档字段查询

如何在嵌入式数组mongodb中查询嵌入式文档

MongoDB删除3级嵌入式文档

查询MongoDB中的嵌入式文档

在嵌入式数组中按$ in查找文档

如何删除重复的嵌入式文档

嵌入式文档中的批量更新

在mongodb中展开嵌入式文档

Mongodb:将字段添加到嵌入式文档中(无数组)

如何在MongoDB的数组字段中查询和删除嵌入式对象?

如何在 MongoDb 中查询嵌入式文档?

TOP 榜单

热门标签

归档