从mongodb中的table2等效表插入表select变量

时间:2013-02-28 10:47:15

标签: mysql mongodb insert

我在互联网上搜索但我一无所获。 我想知道这个mysql命令是否在mongodb中有一个等价物:

insert into table1 select variables from table2;

我想要做的是选择一个文档并将其作为子文档插入另一个文档。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

在单个数据库命令中无法执行此操作。

无论是使用MongoDB驱动程序在shell中还是在您选择的脚本语言中执行此操作,都必须从collection1查询文档,然后使用查询结果对collection2进行适当的更新。

例如:

var doc = db.coll1.findOne( {_id:12345} );
db.coll2.update( {_id:98765}, {$push: {subs:doc} }, {upsert:1} )

更新说的是文档匹配第一个参数在第二个参数中执行更新(推入doc中的子数组值),最后一个参数说如果它尚不存在则创建此文档(即如果_id:98765不是已经在collection2中,它将被创建)。