【发布时间】:2020-04-06 10:45:54
【问题描述】:
首先,我是 MongoDB 新手,所以这个问题对你们中的一些人来说可能很容易回答。我正在尝试创建一个数组或嵌入文档,其中包含我的集合中的现有字段。换句话说,假设我有一个包含“borough”、“street”和“zipcode”字段的集合。我想创建一个名为“Location”的嵌入式文档,然后将这三个字段移至该文档。这可能吗?以下是我尝试实现这一目标的众多不同方法之一:
db.cooking.aggregate([{$set:{"borough":"$borough", "street":"$street", "zipcode":"$zipcode"}},{$out:"Location"}])
然后我将使用 db.Location.copyTo(cooking) 表达式将新创建的聚合集合“Location”中的数据添加到主集合“cooking”时间>。当然,我必须从 cooking 集合中删除现有的三个字段,因为我在嵌入文档 Location 中有相同的信息以避免重复数据。
【问题讨论】:
-
最初我尝试使用这个表达式 db.cooking.updateMany({},{$push:{"Area":null, "Address":null, "Zip":null}}) 创建数组,然后我尝试 db.cooking.updateMany({},{$rename: {"borough": "Location.Area"}}) 更改字段的名称,但也没有运气。
-
我发布了一个答案,它使用嵌入式文档覆盖/更新集合。希望有用。
标签: arrays mongodb aggregation-framework robo3t embedded-documents