首页 > 解决方案 > 使用来自另一个集合的“内部选择”的数据将文档插入集合

问题描述

我有 2 个 mongo 集合:adminslogs

'admins' 集合文档如下所示:

{
   _id: ObjectId("123456"),
   name: "John Doe",
   age: 33
}

我想通过一个查询向“日志”集合中插入一个新文档,如下所示:

{
   _id: ObjectId("778899"),
   action: "did something",
   adminUserId: "123456"   // just a plain string value, not ObjectId
}

所以我真正要问的是如何插入文档,其中字段值等于“内部选择语句”值,即-

adminUserId = ([select one from collection 'admins' where name="John Doe"]._id.toString())

有什么方法可以在一个 mongo 操作中完成所有操作?我在 node.js

标签: node.jsmongodbmongoosemongodb-queryaggregation-framework

解决方案


使用聚合管道检索要插入的数据,然后根据需要对其进行处理,然后使用 $merge 阶段将其插入现有集合中。


推荐阅读