gpt4 book ai didi

node.js - Mongoose中如何查询基于父模型的子模型限制结果

转载 作者:太空宇宙 更新时间:2023-11-04 00:58:14 25 4
gpt4 key购买 nike

我什至不知道如何表达这个问题......但这里是一个尝试。我将这本书称为“父”模型,将作者称为“子”模型。

我有两个 Mongoose 模型——作者和书籍:

var Author = mongoose.model("Author", {
name: String
});

var Book = mongoose.model("Book", {
title: String,
inPrint: Boolean,
authors: [ { type: mongoose.Schema.ObjectId, ref: "Author"} ]
});

我正在尝试运行一个查询,该查询将返回拥有正在打印的书籍(父模型)的所有作者(子模型)。

我可以想出通过多个查询来完成此操作的方法,但我想知道是否有一种方法可以通过一个查询来完成此操作。

最佳答案

您可以使用 populate,如 docs 中所述。

There are no joins in MongoDB but sometimes we still want references to documents in other collections. This is where population comes in. Read more about how to include documents from other collections in your query results here.

在你的例子中,它看起来东西像这样:

Book.find().populate('authors')
.where('inPrint').equals(true)
.select('authors')
.exec(function(books) {
// Now you should have an array of books containing authors, which can be
// mapped to a single array.
});

关于node.js - Mongoose中如何查询基于父模型的子模型限制结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28572579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com