Node.js 在尝试使用NodeJS将我的JSON文件上载到MongoDB时遇到MongoDB批量API问题

Node.js 在尝试使用NodeJS将我的JSON文件上载到MongoDB时遇到MongoDB批量API问题,node.js,mongodb,Node.js,Mongodb,我一直在尝试使用批量API将json文件顺序上传到MongoDB。但每次尝试这样做时,我都会收到以下错误“TypeError:bulk.insert不是函数” 我已经引用了文档,我的语法看起来还不错。一定要让我知道我如何着手修理 下面是我的代码片段。 productRouter.js const products = require('../models/product'); productRouter.route('/bulkupload') .get((req,res,next) =>

我一直在尝试使用批量API将json文件顺序上传到MongoDB。但每次尝试这样做时,我都会收到以下错误“TypeError:bulk.insert不是函数”

我已经引用了文档,我的语法看起来还不错。一定要让我知道我如何着手修理

下面是我的代码片段。 productRouter.js

const products = require('../models/product');

productRouter.route('/bulkupload')
.get((req,res,next) => {
    var productJson = fs.readFileSync('development/mongodb-file-import.json');
    productJson = JSON.parse(productJson);
    console.log(productJson[1])
    var bulk = products.collection.initializeOrderedBulkOp();
    for (i=0; i < productJson.length; i+=1) {
        bulk.insert(productJson[i])
    }
    bulk.execute(function (errx) {
     if (errx) {
             return next(errx);
         }
     console.log('Success');
  });
})
product.js

const mongoose = require('mongoose');
const shortId = require('shortid');
const Schema = mongoose.Schema;

const productSchema = new Schema({
    productName: {
        type: String,
        required: true,
        required: 'Please choose the product from the list!'
    },
    productUnit: {
      type: String,
      required: true
    },
    productPricePerUnit: {
      type: Number,
      required: true
    },
    productSku: {
      type: String,
      required: true,
      uppercase: 1,
      index: {
        unique: true
      },
      default: "SNS" + shortId.generate()
    }
},{
    timestamps: true
});

var products = mongoose.model('products', productSchema);

module.exports = products;

我想你可以用下面的代码来做:

productRouter.route(“/bulkupload”)
.get(异步(请求、恢复、下一步)=>{
var products=fs.readFileSync('development/mongodb file import.json');
products=JSON.parse(products);
常量作业查询=[];
products.forEach(p=>{
p、 productSku=p.productSku?p.productSku:“SNS”+shortId.generate();
常数产品=新产品(p);
jobQuerys.push(product.save());
});
const result=等待承诺。全部(作业查询);
控制台日志(结果);
});

我希望它能帮助您。

您确定您的收藏是这样的:
products.collection.initializeOrderedBulkOp()
还是这样:
products.collection('yourcollectionname')。initializeOrderedBulkOp()
。products是我的收藏名称!这个
productJson
.prodcutJson[1]的示例结果是{productName:'Aachi Sambar Powder | 1Kg',productUnit:'Nos',PRODUCTPRICEPURUNIT:294.64}。还有大约200个类似的例子。是的,我在我的app.js页面中有。我添加了一个显示相同内容的编辑。
const mongoose = require('mongoose');
const shortId = require('shortid');
const Schema = mongoose.Schema;

const productSchema = new Schema({
    productName: {
        type: String,
        required: true,
        required: 'Please choose the product from the list!'
    },
    productUnit: {
      type: String,
      required: true
    },
    productPricePerUnit: {
      type: Number,
      required: true
    },
    productSku: {
      type: String,
      required: true,
      uppercase: 1,
      index: {
        unique: true
      },
      default: "SNS" + shortId.generate()
    }
},{
    timestamps: true
});

var products = mongoose.model('products', productSchema);

module.exports = products;