繁体   English   中英

从 Mongoose 中的文档中检索数组元素

Retrieve array elements from document in Mongoose

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个接受路由参数的端点。 表单路由接受路由参数并使用该参数在使用 Mongoose 的 Forms 集合中查找相应的表单。 但是,当我检索文档时,将返回“fields”属性(它是一个数组),而不包含数组中包含的任何元素。

表单集合的架构如下:

const FormSchema = new Schema({
name: String,
fields: [
  {
    name: String,
    label: String,
    type: String,
    validation: { required: Boolean, min: Number, max: Number || null },
  },
],
});

mongoose.model("forms", FormSchema);

我的端点看起来像这样:

app.get("/api/forms/:formName", (req, res) => {
  const formName = req.params.formName;
  Forms.find({name: formName }).then((form) => {
  if (form) {
    return res.send(form);
  }
  return res.send({ error: "No form found" });
  });
});

当前端返回响应时,即使 fields 数组中有元素,“fields”属性也只是一个空数组。

1 个回复

试试这个:

架构

const Forms = mongoose.model("forms", FormSchema);

使用您自己的路径将这个添加到您的端点文件中

const Forms = require('../models/forms');

也许您可以将其用作端点:

app.get('/api/forms/:formName', (req, res, next) => {
    try {
      const formName = req.params.formName;
      const foundForm = await Forms.find({name: formName})

      if (!foundForm) return next(new Error('No form found'));

      res.status(200).json({
        success: true,
        data: foundForm
      });
    } catch (error) {
      next(error);
    }
});
1 Mongoose 删除文档中的数组元素

嗨,我被困在这一点上,我有一个团队模型,如下所示。 我在这个模型中引用了User Schema 。 我想删除leads数组中的一个元素。 我试了很多次,但它显示如下.. 这是删除数组元素的代码,但它不起作用。 我在 stackoverflow 上检查了其他相同的问题,但无法解决我的问题。 ...

2 Mongoose 删除文档中的数组元素并保存

我的模型文档中有一个数组。 我想根据我提供的键删除该数组中的元素,然后更新 MongoDB。 这可能吗? 这是我的尝试: 到目前为止,它找到了文档,但删除或保存都有效。 ...

3 如何使用mongoose从子文档数组中检索特定字段

我正在尝试从子文档数组中获取特定字段 我不会在父文档中包含任何字段 这是示例文档 如果userId在userId数组中,我想返回层次结构的等级 这是我在查询中到目前为止的内容 到目前为止,它返回我想要的层次结构数组中的整个对象,但我想将其限制为对象的rank属性 ...

4 使用Mongoose在MongoDB中更新文档中数组的元素

我有一个具有以下结构的MongoDB数据库: 我想更新此集合中所有具有_id =“ 3sdf43f34543et35tret435”类别的文档(在本示例中为“类别1”),并且我想将此元素类别设置(例如,从slug)更新为“ category- 3“。 我试图用下面的代码做到这一点: ...

5 在Mongoose中过滤子文档数组,仅返回匹配的元素

我有这样的UserSchema 可以看出, files和internships是子文档。 我的目标是根据特定的输入来过滤其中任何一个,例如,我想根据国家/地区过滤实习。 但是,我有一个问题,就是仅返回与搜索匹配的元素,无论传入的搜索过滤器如何,我都只能返回所有元素。 我尝试 ...

6 使用Mongoose从文档中删除数组元素

我有一个称为ReferralHistory的架构。 它包含一组用户和一组引用用户。 推荐历史 我需要从ReferralHistory集合中的Referrals数组中删除特定用户[这里我只知道所引用用户的ID]。如何实现此目的? 编辑 采集 我试过了 O ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM