我想根据其他集合中的条目创建一个新条目。我有一些默认字段。
在sql中它会是这样的:
INSERT INTO collection1 (field1, field2, field3)
SELECT field_1, field_2, "manualValue" as field3 FROM collection2
在mongo中的Ofc,没有任何目的地字段。在我的情况下,field_1将是一个数组。 一位同事说应该用$ facet完成,但我真的不知道怎么做。
感谢您的帮助。
答案 0 :(得分:0)
有一个$out运算符,其工作方式与INSERT INTO
的SQL语法SELECT
相同。基本上它需要您的聚合管道并将其重定向到指定的集合,但有一点需要注意:它创建新的集合或替换现有的集合,因此您无法追加"#34;附加"你得到现有的集合。将您的SQL转换为Mongo:
db.collection2.aggregate([
{
$project: {
field_1: 1,
field_2: 1,
field_3: "manualValue"
}
},
{
$out: "collection1"
}
])