mongo实现批量更新数据

mongo普通语句,只能实现全局批量更新,那么怎么实现批量实现数据呢?

mongo原生方式:

参考MongoDB Bulk批量操作 - MongoDB教程 - 一点教程

Bulk() — MongoDB Manual

使用initializeUnorderedBulkOp

var HexagonCasterNft = new Mongo.Collection("my_collection");
var bulkOps = HexagonCasterNft.rawCollection().initializeUnorderedBulkOp();

// mount是主键  mountArr,addressArr
addressArr.forEach(function (addressItem, index) {
		                    	
	bulkOps.find( { mount: mountArr[index] } ).update( { $set: {"userAddress":addressItem, "nftCreateTime": new Date().getTime()} } );
})

if (addressArr.length > 0) {
	// 批量更新
	bulkOps.execute(function(err, result) {
	    if (!err) {
		    console.log("批量更新成功");
	    } else {
		    console.log("批量更新失败");
	    }
									
    });
}

mongoose方式:

var bulkOps = [];
mountArr.forEach(function (item) {
	let updateMsg = {
	    'updateOne': {
	        'filter': {'mount': item},
	        'update': {'mount': item.mount, "activeDayNum":newActiveDayNum, "updateTime": new Date().getTime()},
	        'upsert': true,
	    }
	};
	bulkOps.push(updateMsg);
})

if (bulkOps.length > 0) {
	// 批量更新
	PasActiveDay.bulkWrite(bulkOps).then( bulkWriteOpResult => {

	}).catch( err2 => {

	});
} 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值