Mongoose populate() 返回空数组

2024-03-21

所以我已经花了大约4个小时,阅读了几次文档,但仍然无法找出我的问题。我正在尝试对我的模型执行一个简单的 populate() 。 我有一个用户模型和商店模型。用户有一个 favoriteStores 数组,其中包含商店的 _id。我正在寻找的是这个数组将填充商店详细信息。

用户模型

var mongoose = require('mongoose'),
    Schema = mongoose.Schema;

var UserSchema = new Schema({
      username: String,
      name: {first: String, last: String},
      favoriteStores: [{type: Schema.Types.ObjectId, ref: 'Store'}],
      modifiedOn: {type: Date, default: Date.now},
      createdOn: Date,
      lastLogin: Date
});

UserSchema.statics.getFavoriteStores = function (userId, callback) {
    this
    .findById(userId)
    .populate('favoriteStores')
    .exec(function (err, stores) {
        callback(err, stores);
    });
}

还有另一个文件:

商店模型

var mongoose = require('mongoose'),
    Schema = mongoose.Schema;

var StoreSchema = new Schema({
  name: String,
  route: String,
  tagline: String,
  logo: String

});

module.exports = mongoose.model('Store', StoreSchema);

运行后我得到的是:

{
    "_id": "556dc40b44f14c0c252c5604",
    "username": "adiv.rulez",
    "__v": 0,
    "modifiedOn": "2015-06-02T14:56:11.074Z",
    "favoriteStores": [],
    "name": {
        "first": "Adiv",
        "last": "Ohayon"
    }
}

favoriteStores 是空的,尽管当我只是在没有填充的情况下获取商店时,它确实显示了商店的 _id 。

任何帮助是极大的赞赏!谢谢 ;)

UPDATE使用后深度填充插件 https://github.com/buunguyen/mongoose-deep-populate它神奇地修复了它。我猜问题出在 userSchema 的嵌套上。仍然不确定问题到底是什么,但至少已经解决了。


我认为当跨多个文件定义架构时会发生此问题。要解决此问题,请尝试致电populate这边走:



.populate({path: 'favoriteStores', model: 'Store'})
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongoose populate() 返回空数组 的相关文章

随机推荐

  • WPF,访问组合框所选项目

    我有一个组合框 有四个静态可能的选择 如下所示 主窗口 xaml
  • 覆盖索引的正确字段顺序 - MySQL

    MySQL 中是否有为表创建覆盖索引的标准顺序 这意味着如果我的查询包含 where 子句 order by 和 select 语句中的字段 那么我将以什么顺序将字段添加到索引中以正确创建覆盖索引 覆盖索引采用逗号分隔列表中的列列表 从左侧
  • Flutter:在方向更改期间,当小部件树被锁定时调用 setState() 或 markNeedsBuild()

    我想创建一个应用程序 其 UI 可以根据设备方向进行更新 在肖像布局中 我使用抽屉来显示一些元素 Fig https i stack imgur com 1M9hc png 在横向布局中 没有抽屉 但元素显示在屏幕左侧的列中 Fig htt
  • 使用 Laravel 5 上传 pdf 文件

    我正在使用 Laravel 5 2 我想制作一个可以用它上传 pdf 文件的表单 我想将该文件添加到 public 文件夹中的 files 文件夹中 这是我的观点 div class form group div
  • 我可以使用 HTML5 data-* 属性作为布尔属性吗? [复制]

    这个问题在这里已经有答案了 我想使用自定义布尔属性将元素的内容标记为可编辑 我知道data 属性 但不确定它们是否需要值 我不需要data is editable false 因为缺少该属性是等效的 我只关心它是否为 true 如果该属性存
  • Rails 路线:从根路径“/”获取资源

    我有一个查询资源 我想将其路由到我的域的根目录 因此发布到 会转到queries create行动等 我的路线 rb root to gt home index resources queries path gt 耙子路线 root hom
  • git lfs 迁移有什么作用?

    我以为git lfs migrate重写了存储库的历史记录 以便将指定的大文件保存在 LFS 中 这意味着存储库应该变得更小 因为它不直接包含大文件的所有版本 然而 当我跑步时 git lfs migrate import include
  • “使用 Google 登录”按钮的 data-login_uri 属性应使用什么?

    我正在尝试实现 使用 Google 登录 按钮 如此处记录的 https developers google com identity gsi web guides display button https developers googl
  • 表单提交前预览图像

    我的表单中有 ImageField 有没有办法在提交表单之前显示所选文件 也许在 jQuery 中可以实现 我读到我可以通过 request FILES 以某种方式访问 此文件 但我认为在提交表单之前它会是空的 试试这个 function
  • 在 ASP.NET Web API 中序列化继承类型

    我在 Web API 中序列化继承的对象时遇到问题 DataContract public class Item DataMember public int ID get set DataMember public string Name
  • CSS - 大于选择器 - 选择大于 N 的项目

    我有一些 p 我的 HTML 正文中的元素 我只想显示前两段 然后设置display none到之后的所有段落 为什么下面的代码不起作用 p p 1 p p 2 p p 3 p p 4 p 我的代码仍然在 Chrome 网络浏览器中显示所有
  • GUI 应用程序中的 Web 技术

    您在使用 Web 技术 HTML XML CSS JavaScript 实现 GUI 应用程序的部分功能方面有什么经验 优点和缺点 请说一下 没有服务器 关系数据库 AJAX 或用于会话管理的 cookie 也没有现有的 Web 应用程序
  • C 标准是否允许自修改代码?

    C 中的自修改代码是否可以以可移植的方式实现 我问的原因是 在某种程度上 OOP 依赖于自修改代码 因为在运行时执行的代码实际上是作为数据生成的 例如在 v 表中 但是 似乎如果这太过分了 它会阻止编译器中的大多数优化 例如 void ad
  • 三张牌排成一行,而不是所有牌排成一列

    我正在使用 React 和 Material UI 我在一个数组中有 40 张动态卡 当我渲染它们时 我想要连续 3 张卡 并将所有卡放在一列中 我正在使用这张卡 https codesandbox io s r084q99q34 http
  • 我可以在 OS X 中进行 Java 6 开发吗?

    我知道当 Leopard 推出时 每个人 嗯 每个 Java 开发人员并且足够关心在 Mac 上进行开发 都对没有 Java 6 SDK 支持感到愤怒 我知道有人在 Leopard 发布几个月后提供了某种破解方法 但我可以发誓 我稍后读到
  • 从我的数据框中创建虚拟变量矩阵;使用“NA”来查找缺失值

    我有一个基于不同年份的数据 重复了几次 我希望我的输出具有等于年数的列 每列代表一年 现在 目的是分别为每年创建虚拟变量 例如 只要主数据中存在与 2000 年平行的非 NA 观测值 2000 年的输出列就必须具有值 1 否则为 0 而且
  • 从 Firebase 通知恢复应用程序不起作用(Xamarin Forms)

    我正在努力整合Firebase 推送通知到我的应用程序 请找到我的火力基地Firebase消息服务 class 如果应用程序打开并运行 则一切正常 但是 如果应用程序未打开 如果我切换到其他应用程序 我的应用程序未关闭 我收到通知 但当我点
  • 帮助在 Rails 中构建模型

    class Profile has many projects through gt teamss has many teams foreign key gt member id has many own projects class na
  • Jenkins:动态作业创建引发“管道 CPS 方法不匹配”错误

    我正在尝试从应并行运行的管道作业之一创建多个动态作业 我希望我的詹金斯管道脚本根据用户输入下载并安装我的软件二进制文件 以下是我的示例阶段 第 1 阶段 将下载构建版本 第 2 阶段 获取参数并安装软件的 云 部分 第 3 阶段 将接受用户
  • Mongoose populate() 返回空数组

    所以我已经花了大约4个小时 阅读了几次文档 但仍然无法找出我的问题 我正在尝试对我的模型执行一个简单的 populate 我有一个用户模型和商店模型 用户有一个 favoriteStores 数组 其中包含商店的 id 我正在寻找的是这个数