首页 > 解决方案 > 我们可以在 mongo shell 中使用回调吗?

问题描述

我想将一个文档插入到collection1成功插入文档后,我想将另一个文档插入到collection2. 文档的字段之一collection2将是_id刚刚插入的文档的字段collection1

我正在使用回调:

db.collection1.insert(<document>,function(err,doc)){
     db.collection2.insert({collection1_id: doc[0]._id, <field>:<value>})

但是,如果没有Node.js.

有什么解决方法吗?

标签: mongodbmongo-shell

解决方案


回调是 Node.js 异步 API 的一部分,并且在 shell 中不受支持mongo(如 MongoDB 4.0)。但是,您始终可以编写没有回调的等价物。

mongoshell 的方法insertOne()将返回一个包含插入文档值的insertedId字段_id,因此您可以保存或引用该值。

例如:

db.collection2.insertOne({
    collection1_id: db.collection1.insertOne({}).insertedId,
    field: 'value'
})

推荐阅读