首页 > 解决方案 > 尝试使用聚合管道执行 addField 并且它不起作用

问题描述

我正在使用猫鼬向集合(每个数据)添加一个字段。它返回零错误,但是,当我检查数据库时,它没有添加任何字段。

app.use('/', (res, req) => {
  mongoose.connection.db.collection('placemodels').aggregate(
    [
      {
        $addFields: {
          type: 'place',
        },
      },
    ],
    (err, e) => {
      console.log(err, 'ahsidufhieuahiu');
      console.log(e);
    }
  );
});

我在哪里犯了错误?

编辑

 mongoose.connection.db.collection('placemodels').aggregate(
    [
      {
        $set: {
          type: 'place',
        },
      },
    ],
    (err, e) => {
      console.log(err, 'ahsidufhieuahiu');
      console.log(e);
    }
  );

标签: node.jsmongodbmongoose

解决方案


$addFields管道阶段只会将新字段添加到获取的文档中,即它永远不会实际修改数据库中的文档。

换句话说 - 它只是修改输出中的文档。

如果您想实际向数据库中的文档添加新字段,您可以使用collection.update(..)-operator $sethttps ://docs.mongodb.com/manual/reference/operator/update/set/


推荐阅读