gpt4 book ai didi

node.js - Mongoose 将返回的数据限制为模型

转载 作者:太空宇宙 更新时间:2023-11-03 22:03:42 24 4
gpt4 key购买 nike

我有最基本的 Mongoose 模式。像这样的事情:

var mongoose = require("mongoose");
var Schema = mongoose.Schema;

ConfigSchema = new Schema({
title: String
});

module.exports = mongoose.model("Config", ConfigSchema);

如果我使用此模型从该集合中获取数据(使用 find 函数),我将获得整个对象。
调用:

Config.find(function(err, configs) {
if (err) res.send(err);
res.json(configs);
});

返回数据:

enter image description here

我的想法是,Mongoose 会根据模型验证获取的数据,以仅返回适合模型的数据,因此在本例中,仅返回元素的标题。我知道我可以使用 Mongoose 上的 strict 属性来强制保存模型,但我正在寻找的是一种仅获取建模数据的方法。

我在这里遗漏了什么,还是我只是在寻找错误的工具来实现我想要完成的任务。我发现this这似乎符合我的要求,但我不想覆盖 Mongoose 架构,只是为了在获取数据时强制执行它。

最佳答案

似乎没有内置任何查询功能,但您可以轻松实现自己的 pre-middleware

ConfigSchema.pre('find', function() {
this.select(Object.keys(ConfigSchema.tree));
});

当您运行 Config.find 时,这将生成以下查询:

configs.find({}, { projection: { title: 1, _id: 1, __v: 1, id: 1 } })

关于node.js - Mongoose 将返回的数据限制为模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59956982/

24 4 0
文章推荐: html - 需要父