我在互联网上搜索,但我一无所获。我想知道这个 mysql 命令在 mongodb 中是否有等价物:
insert into table1 select variables from table2;
我想要做的是选择一个文档并将其作为子文档插入到另一个文档中。
谢谢你的帮助!
没有办法在单个数据库命令中执行此操作。
无论您是在 shell 中执行此操作,还是使用 MongoDB 驱动程序在您选择的脚本语言中执行此操作,您都必须从 collection1 查询文档,然后使用查询结果对 collection2 进行适当的更新。
例如:
var doc = db.coll1.findOne( {_id:12345} );
db.coll2.update( {_id:98765}, {$push: {subs:doc} }, {upsert:1} )
更新所说的是匹配第一个参数的文档在第二个参数中更新(推入 doc 中的 subs 数组值),最后一个参数说如果它不存在则创建此文档(即如果 _id: 98765 不在 collection2 中它将被创建)。