大佬教程收集整理的这篇文章主要介绍了node.js – 在MongoDB中使用mongoose批量插入多个集合,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
{ _id: ......,name: ......,//not unique mobile: ......,// unique or null email: ......,// unique or null uniquEID: ......,// unique or null }@H_696_5@插入需要至少一个唯一数据 @H_696_5@元数据架构是 @H_696_5@
{ _id: ......,dataId: ......,//refrence from _id of data collection key: ......,value: ...... }@H_696_5@JSON数组来自客户端 @H_696_5@
[{ name: "abc",mobile: 9999999999,mData: { c1: 123,c2: "xyz" } },{ name: "qwerty",email: 'qwerty@mail.com',c2: "zxc" } } ...... ]@H_696_5@我正在迭代数组并将它们中的每一个插入到MongoDB中. @H_696_5@
let Bulk = Data.collection.initializeUnorderedBulkOp(); dataArr.forEach(function(item) { let data = service.generateData(item); // data.query: {mobile: ...,email: ...,uniquEID: ...} // if value exists then keys is also exists for mobile,email,uniquEID in query Bulk.find(data.query).upsert().updateOne(data.doc); }); Bulk.execute((e,d) => { let MetaBulk = MetaData.collection.initializeorderedBulkOp(); let length = dataArr.length; dataArr.forEach(function(data) { Data.findOne(data.query).exec(function(err,data) { length--; for(let key in data["mData"]) { let value = data["mData"][key] || ""; let mData = service.generateMdata(key,value,data._id); MetaBulk.find(mData.query).upsert().updateOne(mData.doc); } if(length == 0) { MetaBulk.execute(); } }); }); });@H_696_5@我的解决方案现在工作正常但是它花了很多时间来迭代数据收集以查找MetaData集合的ID. @H_696_5@我需要一种将数据批量插入MongoDB而无需查询数据ID的方法.是否有任何选项可以在单个查询中使用mongoose对多个集合执行批量upsert.
以上是大佬教程为你收集整理的node.js – 在MongoDB中使用mongoose批量插入多个集合全部内容,希望文章能够帮你解决node.js – 在MongoDB中使用mongoose批量插入多个集合所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。