从不同集合中的数据创建新条目 (MongoDb)
Posted
技术标签:
【中文标题】从不同集合中的数据创建新条目 (MongoDb)【英文标题】:Creating a new entry from data from a different collection (MongoDb) 【发布时间】:2018-05-31 13:55:18 【问题描述】:我想根据来自其他集合的条目创建一个新条目。我有一些默认字段。
在 sql 中会是这样的:
INSERT INTO collection1 (field1, field2, field3)
SELECT field_1, field_2, "manualValue" as field3 FROM collection2
在 mongo 中的 Ofc 不会有任何目标字段。在我的情况下 field_1 将是一个数组。 一位同事说应该用 $facet 来完成,但我真的不知道该怎么做。
感谢您的帮助。
【问题讨论】:
【参考方案1】:有一个$out 运算符可以与INSERT INTO
和SELECT
在SQL 语法中的工作方式相同。基本上,它需要您的聚合管道并将其重定向到指定的集合,但有一个警告:它创建新集合或替换现有集合,因此您不能将结果“附加”到现有集合。将您的 SQL 转换为 Mongo:
db.collection2.aggregate([
$project:
field_1: 1,
field_2: 1,
field_3: "manualValue"
,
$out: "collection1"
])
【讨论】:
以上是关于从不同集合中的数据创建新条目 (MongoDb)的主要内容,如果未能解决你的问题,请参考以下文章
从 Node.js 向 MongoDB 集合插入不同类型的值