0

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

insert into table1 select variables from table2;

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

谢谢你的帮助!

4

1 回答 1

2

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

无论您是在 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 中它将被创建)。

于 2013-02-28T11:29:28.080 回答