我想知道MongoDB中这个MySQL命令的等价物。
INSERT INTO xyz (field1, field2, field3, field4)
SELECT t1.id, t2.id, t3.id, NOW() FROM t1, t2, t3
我一直使用MongoDB只有48小时,我担心我无法想出那个。
感谢所有事情:)。
答案 0 :(得分:1)
MongoDB不进行连接,因此您的前三个步骤是:
t1.id
并将其放入t1_id
。t2.id
并将其放入t2_id
。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。