如何通过ID查询嵌套文档而不查询所有顶级文档?

时间:2020-04-07 16:44:01

标签: mongodb mongoose mongoose-schema

我很惊讶,猫鼬文档和堆栈溢出问题都没有为这个非常简单的问题提供解决方案。

如果我遵循有关嵌套对象(此处为https://mongoosejs.com/docs/subdocs.html)的猫鼬文档,则可以声明一个带有子文档嵌套数组的模型,如下所示:

var childSchema = new Schema({ name: 'string' });

var parentSchema = new Schema({
  children: [childSchema]
});

如果我在父母中插入孩子,则所有孩子都会获得一个_id。

假设我使用的是REST API。

我收到带有孩子ID的PUT或PATCH请求以进行更新。

文档说,如果我想按ID检索子文档,则必须执行parent.children.id(_id)。 但是,如果我的API端点仅接收子ID,则没有父元素。所以这对我不起作用。

我可以运行一个查询,该查询将在成千上万个在childs数组中具有该id的父母中找到一个父母,但是在我已经知道随机查询数千个文档的情况下似乎不正确我要查找的对象的ID。

我正在寻找一种方法,以一种非常直接的方式来检索具有该id的唯一Child,而无需浏览所有父母。

你会怎么做?

0 个答案:

没有答案