Node.js 在尝试使用NodeJS将我的JSON文件上载到MongoDB时遇到MongoDB批量API问题
我一直在尝试使用批量API将json文件顺序上传到MongoDB。但每次尝试这样做时,我都会收到以下错误“TypeError:bulk.insert不是函数” 我已经引用了文档,我的语法看起来还不错。一定要让我知道我如何着手修理 下面是我的代码片段。 productRouter.jsNode.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) =>
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;