当前位置: 首页 > 面试题库 >

在猫鼬中填充嵌套数组

杨乐意
2023-03-14
问题内容

如何在示例文档中填充“组件”:

  {
    "__v": 1,
    "_id": "5252875356f64d6d28000001",
    "pages": [
      {
        "__v": 1,
        "_id": "5252875a56f64d6d28000002",
        "page": {
          "components": [
            "525287a01877a68528000001"
          ]
        }
      }
    ],
    "author": "Book Author",
    "title": "Book Title"
  }

这是我的JS,可从Mongoose获取文档:

  Project.findById(id).populate('pages').exec(function(err, project) {
    res.json(project);
  });

问题答案:

猫鼬4.5支持此

Project.find(query)
  .populate({ 
     path: 'pages',
     populate: {
       path: 'components',
       model: 'Component'
     } 
  })
  .exec(function(err, docs) {});

您可以加入不止一个深层次



 类似资料:
  • 如何在示例文档中填充“组件”: 这是我的JS,我在这里通过Mongoose获取文档:

  • 问题内容: 假设以下3个模型: 当我查询汽车时,我可以填充零件: 猫鼬是否有办法在所有汽车的嵌套零件对象中填充otherIds。 我可能可以遍历每辆车并尝试填充: 问题是我必须使用一个像async这样的库来对每个对象进行填充调用,然后等到所有操作完成后再返回。 可以在不循环所有汽车的情况下做? 问题答案: 更新: 请参阅以获取在Mongoose 4中添加的更紧凑的版本。摘要如下: 猫鼬3及以下:

  • 问题内容: 我使用Mongoose.js,无法解决3级层次结构文档的问题。 有2种方法可以做到。 首先 -没有裁判。 我需要出示C记录。仅知道_id的C,如何填充/找到它? 我曾尝试使用: 但是我不知道如何从returnet得到一个对象,我只需要c对象。 其次, 如果使用裁判: 如何填充所有B,C记录以获取层次结构? 我试图使用这样的东西: 但是它将为single_c.title返回undefin

  • 问题内容: 在我正在处理的集合中,文档如下所示: 我写了这个Mongoose模式来访问它: 当我查询文档时,一切正常,控制台中显示的输出正确。但是当我尝试执行console.log(myDoc.stuff)时,得到了以下信息: 代替 我究竟做错了什么?谢谢您的帮助!! 问题答案: 免责声明:此回复的日期过早,2012年!这可能不是最准确的。 从猫鼬的文档。 http://mongoosejs.co

  • 问题内容: 一般而言,我对Mongoose和MongoDB还是很陌生,所以我很难确定是否可以进行以下操作: 有更好的方法吗? 编辑 如有任何混淆,我们深表歉意。我想做的是获取所有包含有趣标签或政治标签的商品。 编辑 没有where子句的文档: 使用where子句,我得到一个空数组。 问题答案: 对于大于3.2的现代MongoDB,您可以在大多数情况下用作替代。这也有实际上做加盟,而不是什么“在服务

  • 问题内容: 我在用猫鼬填充后无法通过在文档内部匹配的值来查询文档。 我的架构是这样的: 我想让所有用户拥有例如类型为“ Gmail”的电子邮件。 以下查询返回空结果: 我不得不像这样过滤JS中的结果: 有没有办法从猫鼬直接查询类似的东西? 问题答案: @Jason Cust 已经很好地解释了它- 在这种情况下,通常最好的解决方案是更改架构,以防止通过存储在单独集合中的文档的属性进行查询。 不过,这