Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在nodejs/mongoose/for$out中提供集合名称_Node.js_Mongodb_Migrate - Fatal编程技术网

Node.js 如何在nodejs/mongoose/for$out中提供集合名称

Node.js 如何在nodejs/mongoose/for$out中提供集合名称,node.js,mongodb,migrate,Node.js,Mongodb,Migrate,我有一个名为pin_count的字段,其中有另一个名为pins的字段的计数,但由于逻辑中断,两个字段的计数不匹配,因此我正在使用migrate mongo编写迁移脚本,下面就是我所做的。但不知道为什么它不起作用 'use strict'; const BPromise = require('bluebird'); const types = ['pins`]; module.exports = { up(db) { return BPromise.resolve(types)

我有一个名为
pin_count
的字段,其中有另一个名为
pins
的字段的计数,但由于逻辑中断,两个字段的计数不匹配,因此我正在使用
migrate mongo
编写迁移脚本,下面就是我所做的。但不知道为什么它不起作用

'use strict';

const BPromise = require('bluebird');
const types = ['pins`];

module.exports = {
  up(db) {
      return BPromise.resolve(types).mapSeries(col => {
          return db.collection(col).aggregate([
              { '$addFields': {
                  'pin_count': { '$size': '$pins'}
              }},
              { "$out": col }
          ]);
      });
  },

  /**
   * No need to have down script since this is a correction of the data
   */
  down: function (db) {

  }
};
我测试了以下各项,效果良好:

db.pins.aggregate([
    { '$addFields': {
        'pin_count': { '$size': '$pins'}
    }},
    { "$out": "pins" }
]);
但是,migrate-mongo()()插件中的相同功能不起作用

'use strict';

const BPromise = require('bluebird');
const types = ['pins`];

module.exports = {
  up(db) {
      return BPromise.resolve(types).mapSeries(col => {
          return db.collection(col).aggregate([
              { '$addFields': {
                  'pin_count': { '$size': '$pins'}
              }},
              { "$out": col }
          ]);
      });
  },

  /**
   * No need to have down script since this is a correction of the data
   */
  down: function (db) {

  }
};
文件结构:

{"_id" : ObjectId, "pins" : [ 'da', 'dal' ], "pin_count" : 4}

请添加原始收藏中的样本文档
“\u id”:ObjectId,“pins”:['da','dal'],“pin\u count”:4,
@felix@chridam没有任何创意。请添加其他细节,以突出显示您所需的内容。正如目前编写的,我们不知道
类型
解析为什么。您是否尝试过使用一些示例文档在单独的测试集合上测试该管道?我厌倦了
db.pins.aggregate([{'$addFields':{'pin_count':{'$size':'$pins'}}},{'$out:'pins}])工作正常,但不是问题中的那个。请添加原始集合中的示例文档
“\u id”:ObjectId,“pins”:['da','dal'],“pin\u count”:4,
@felix@chridam没有任何创意。请添加其他细节,以突出显示您所需的内容。正如目前编写的,我们不知道
类型
解析为什么。您是否尝试过使用一些示例文档在单独的测试集合上测试该管道?我厌倦了
db.pins.aggregate([{'$addFields':{'pin_count':{'$size':'$pins'}}},{'$out:'pins}])工作正常,但不是问题中的那个。