在MongoDB中存儲500多個Facebook好友需要很長時間,我認爲我這麼做是錯誤的。我貼我是如何做的插入:我應該如何在Meteor Mongodb中插入一堆數據?
models.js:
Friends = new Meteor.Collection('friends');
Friend = {
set : function(owner, friend) {
var user_id = get_user_by_uid(friend['uid']);
return Friends.update({uid: friend['uid'], owner: owner}, {$set:{
name : friend['name'],
pic_square : 'https://graph.facebook.com/'+friend['uid']+'/picture?width=150&height=150',
pic_cover : friend['pic_cover'],
uid : friend['uid'],
likes_count : friend['likes_count'],
friend_count : friend['friend_count'],
wall_count : friend['wall_count'],
age : get_age(friend['birthday_date']),
mutual_friend_count : friend['mutual_friend_count'],
owner : owner,
user_id : user_id ? user_id['_id'] : undefined
}}, {upsert: true});
}
}
server.js:
// First get facebook list of friends
friends = friends['data']['data'];
_.each(friends, function(friend){
Friend.set(user_id, friend);
});
的負荷變爲高電平與2+用戶,它需要年齡在數據庫中插入。我應該在這裏改變什麼?
爲什麼你使用Friends.update而不是Friends.insert? – Rahul
因爲它是一個upsert! – gabrielhpugliese
嘗試插入數據並查看速度是否提高。另請注意,minimongo中不支持upsert(客戶端在Meteor中實現mongodb) – Rahul