我在互联网上搜索但我一无所获。 我想知道这个mysql命令是否在mongodb中有一个等价物:
insert into table1 select variables from table2;
我想要做的是选择一个文档并将其作为子文档插入另一个文档。
感谢您的帮助!
答案 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中,它将被创建)。