Javascript MongoDB批量插入操作而不是For循环 让我们考虑用 NoDEJS 和 MangGDB < /代码>来构建一个社会网络。 因此,如果用户创建了一个新帖子,它应该保存到他/她的追随者提要中

Javascript MongoDB批量插入操作而不是For循环 让我们考虑用 NoDEJS 和 MangGDB < /代码>来构建一个社会网络。 因此,如果用户创建了一个新帖子,它应该保存到他/她的追随者提要中,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,此操作的简单实现如下(简化): var newPost=“New Post”; //获取用户1的追随者列表 var listofollowers=followerscolection.find({u:“1”}); 对于(var i=0;i阅读此文档,我想您会得到答案MongoDB提供批量文档插入功能,请查看此链接- db.collection.initializeUnderedBulkop()它创建了一个无序的操作列表,mongodb并行执行该列表,因此速度很快,而且在mongo处理它时,您不必

此操作的简单实现如下(简化):

var newPost=“New Post”;
//获取用户1的追随者列表
var listofollowers=followerscolection.find({u:“1”});

对于(var i=0;i阅读此文档,我想您会得到答案

MongoDB提供批量文档插入功能,请查看此链接-

db.collection.initializeUnderedBulkop()
它创建了一个无序的操作列表,mongodb并行执行该列表,因此速度很快,而且在mongo处理它时,您不必额外考虑性能

对于有序插入,可以使用
db.collection.initializeOrderedBulkOp()

e、 g

var newPost=“New Post”;
var bulk=db.followerscolection.initializeUnderedBulkop();
//获取用户1的追随者列表
var listofollowers=followerscolection.find({u:“1”});
对于(var i=0;i检查:

var newPost="New Post";

//Object Array
var collection = []

//get list of followers of user 1
var listOfFollowers = followersCollection.find({u:"1"}); 

for(var i=0;i<listOfFollowers.length;i++){
    var followerId = listOfFollowers[i]._id;
    collection.push({ownerId:followerId,authorId:"1",content:newPost})
}
feedsCollection.insert(collection); //Or use insertMany()
var newPost=“New Post”;
//对象数组
变量集合=[]
//获取用户1的追随者列表
var listofollowers=followerscolection.find({u:“1”});

对于(var i=0;我谢谢你。虽然其他答案很好选择,但这是完美的答案。记录在案,MongoDB NodeJS驱动程序也支持我目前使用的UnorderedBulkOp。谢谢你的回答。这已经足够好了,但我认为UnorderedBulkOp的东西更好,因为它并行执行ops。
var newPost="New Post";
var bulk = db.followersCollection.initializeUnorderedBulkOp();
//get list of followers of user 1
var listOfFollowers = followersCollection.find({u:"1"}); 

for(var i=0;i<listOfFollowers.length;i++){
    var followerId = listOfFollowers[i]._id;
    //insert new post of user 1 to every follower feed
    bulk.insert( {ownerId:followerId,authorId:"1",content:newPost});
}
bulk.execute();
var newPost="New Post";

//Object Array
var collection = []

//get list of followers of user 1
var listOfFollowers = followersCollection.find({u:"1"}); 

for(var i=0;i<listOfFollowers.length;i++){
    var followerId = listOfFollowers[i]._id;
    collection.push({ownerId:followerId,authorId:"1",content:newPost})
}
feedsCollection.insert(collection); //Or use insertMany()