的MongoDB沒有做連接,以便你的前三個步驟是:
- 抓鬥
t1.id
從MongoDB中,並把它放在t1_id
。
- 從MongoDB抓取
t2.id
並將其放入t2_id
。
- 從MongoDB抓取
t3.id
並將其放入t3_id
。
然後,您可以在場所使用new Timestamp()
的NOW()
:
db.xyz.insert({
field1: t1_id,
field2: t2_id,
field3: t3_id,
field4: new Timestamp()
});
如果你真的做了三路交叉的產品,那麼你就必須來包裝上述三重嵌套循環像這樣:
for(var i = 0; i < all_t1_ids.length; ++i) {
for(var j = 0; j < all_t2_ids.length; ++j) {
for(var k = 0; k < all_t3_ids.length; ++k) {
db.xyz.insert({
field1: all_t1_ids[i],
field2: all_t2_ids[j],
field3: all_t3_ids[k],
field4: new Timestamp()
});
}
}
}
你必須用MongoDB手動執行很多傳統的RDBMS。
但是,如果我的原始MySQL查詢插入了大約400K條記錄,那麼您建議的那個會做同樣的事情嗎?從它的外觀來看,它看起來只會插入一個。 – Pierre 2011-05-29 15:41:40
@Pierre:你必須把它包裝在一個循環中,我會添加一個更新來達到這個效果。 – 2011-05-29 17:54:08