【问题标题】:Creating a new entry from data from a different collection (MongoDb)从不同集合中的数据创建新条目 (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 来完成,但我真的不知道该怎么做。

感谢您的帮助。

【问题讨论】:

    标签: sql mongodb mongodb-query


    【解决方案1】:

    有一个$out 运算符可以与INSERT INTOSELECT 在SQL 语法中的工作方式相同。基本上,它需要您的聚合管道并将其重定向到指定的集合,但有一个警告:它创建新集合或替换现有集合,因此您不能将结果“附加”到现有集合。将您的 SQL 转换为 Mongo:

    db.collection2.aggregate([
        {
            $project: {
                field_1: 1,
                field_2: 1,
                field_3: "manualValue"
            }
        },
        {
            $out: "collection1"
        }
    ])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-21
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多