问题标签 [mongoose-populate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
814 浏览

mongodb - 使用 ObjectID 填充嵌套数组

试图在我的架构中填充 ObjectID 的数组。我查看了类似的答案,但似乎每个人的做法都略有不同,我自己也找不到解决方案。

我的架构如下所示:

到目前为止,我一直在尝试像这样填充它,这显然是行不通的

我讨厌添加到人口问题列表中,但我查看了很多,但没有找到解决方案。任何帮助是极大的赞赏!

编辑:这是我向文档添加管理员的方式

0 投票
1 回答
1726 浏览

node.js - 猫鼬模型在填充后获得未定义的属性

我遇到了一个基本请求的问题。我获取的猫鼬模型的所有属性都未在 exec() 回调中定义。

这是我的架构:

您已经注意到我的“朋友”属性是一个引用另一个模式的对象数组。

现在这是我的查询:

当此 Web 服务返回“_user”时,每个属性都已明确定义并具有正确的值。问题是我只想返回 _user.friends 这是不可能的,因为它是未定义的。

现在,这里是 apiUtils.jsonResponse 函数:

还有 cleanResults 函数:

我尝试设置超时以查看问题是否来自异步,但它没有改变。我现在有点绝望,我想知道你以前是否遇到过同样的问题?

0 投票
0 回答
258 浏览

angularjs - 路径“e”处的值“[object Object]”转换为 ObjectId 失败

以下是我的架构

api.js

我填充对象“e”和“f”。但是,我会在路径“e”处收到错误 Cast to ObjectId failed for value “[object Object]” .. 它也发生在“f”

0 投票
1 回答
1331 浏览

mongodb - mongo mongoose 填充子文档返回 null

我正在尝试使用节点和猫鼬的填充方法来在查询中“加入”2 个集合。以下是我的架构设置:

我还设置了 Stat mongoose 模型,以便查询可以正常工作(但结果不是我所期望的)。

我尝试执行以下查询:

这给了我正确的结果,并且正确引用了 ssss。结果是这样的。

但是,以下查询给了我错误的结果。

这给了我所有结果的 rating.stat = null 。有人能告诉我我做错了什么吗?谢谢。

0 投票
2 回答
90 浏览

node.js - 猫鼬填充问题 - 数组对象

我的架构如下

部分模式

文档架构

api.js

如果我这样做,我的“文档”对象是 []。但是,如果我删除,“populateArray.push('documents');” 然后我得到文件:['5adfsadf525sdfsdfsdfssdfsd'] -- 一些对象 ID(至少)

请让我知道我需要填充的方式。

谢谢。

0 投票
1 回答
931 浏览

node.js - Mongoose 动态模型,不能使用 populate()

我的 CMS 是用 Node.js + Express + Mongoose 编写的。这是一个多站点 CMS,每个站点都有自己的数据库。所以我需要让 Mongoose 在每个 HTTP 请求时切换连接。我四处寻找一些解决方案,或者有我同样情况但没有成功的人。所以这是我的解决方案:

HTTP 请求:

BIZ 组件(pagesBiz):

型号(页)

那么它是如何工作的呢?当用户登录时,会创建一个新的用户会话并通过会话 cookie 绑定到用户(我使用 MongoStore + Express Session)。会话包含用于动态实例化 Mongoose 模型的数据库的名称。

它工作得很好,不同站点的用户从他们自己的数据库中读取而没有“冲突”的风险,另一方面我必须在函数周围传递会话(或数据库名称),但我想这就是 Node.js 的方式在多线程上下文中工作。

唯一的问题是当我使用填充方法()时,我收到了这个错误:

f:\www\rudsjs\node_modules\mongoose\lib\connection.js:625 throw new MongooseError.MissingSchemaError(name); ^ MissingSchemaError:尚未为模型“用户”注册架构。使用 mongoose.model(name, schema) 在 NativeConnection.Connection.model (f:\www\rudsjs\node_modules\mongoose\lib\connection.js:625:11) 在填充 (f:\www\rudsjs\node_modules\mongoose \lib\model.js:2136:24) 在 Function.Model.populate (f:\www\rudsjs\node_modules\mongoose\lib\model.js:2101:5) 在 Object.cb (f:\www\rudsjs \node_modules\mongoose\lib\query.js:1159:16) 在 Object._onImmediate (f:\www\rudsjs\node_modules\mongoose\node_modules\mquery\lib\utils.js:137:16) 在 processImmediate [as _immediateCallback ] (timers.js:336:15)

进程以退出代码 8 结束

我尝试使用以下方法在 populate() 调用之前预加载模型:

用户(会话。数据库);

但问题似乎与 Mongoose 缓存模型的方式有关(那不是我的),我查看了 connection.js

所以我需要一种方法将我的模型插入到this.base.models中。你有什么主意吗?您是否特别有更好的解决方案来实现多站点/多数据库环境?

0 投票
2 回答
810 浏览

node.js - 无法在返回 null 的 mongoose 中填充

我试图创建一个 FoodItem 架构,在其中我将 measureUnit 作为另一个页面模型的对象引用。

这是存在 measureUnit 的 MeasureTypesSchema。MeasureTypes 是 MetricsSchema 中的嵌入式数组文档。我正在导出 MeasureTypesSchema 的模型 (MeasureTypes) 和 MetricsSchema 的模型 (Metrics)。

这是 FoodItemSchema,我将 measureUnit 作为另一个页面中存在的 MeasureTypes 模型的对象引用

我需要在填充时获取 measureUnit 的详细信息,如何填充以便获取 measureUnit 的详细信息。

0 投票
1 回答
567 浏览

mongodb - 基于ObjectId引用条件的MongoDB查询

我有一个 MongoDB 集合Cats,其中有一个 ObjectId 引用字段zooId到 collection Zoo

我将如何去查询类似

db.Cats.find({zooId.zooName: 'San Diego'}).count()

查询的条件是参考中的字段zooNamezooId哪里?

我理解通过使用 Mongoose,我可以调用该populate方法来实际获取某些引用,但是我将如何直接在 mongodb 控制台或 RoboMongo 中执行类似的操作?

谢谢!

0 投票
1 回答
439 浏览

express - Mongoose 的填充方法打破了承诺链?

所以我有一个看起来像这样的猫鼬模式:

*请注意,职位文档可以在ResponsibleTo字段中引用自身。

现在,我正在尝试构建一个方法来搜索Positions集合、填充currentlyHolding[].person.name fieldresponsibleTo.currentlyHolding[].person.name字段,并返回找到的记录总数(用于前端的分页目的)。

这是我的代码的样子:

我的问题是当我使用 populate 方法运行第一个查询时(如图所示),它不起作用。我带走了人口,它起作用了。populate 方法会破坏承诺,这是真的吗?如果是这样,有没有更好的方法来实现我想要的?

0 投票
1 回答
1182 浏览

node.js - Moogoose 自我参考未填充

我在猫鼬中有这样的自我参考:

我想用 find 取回我的模型的属性内容:

这是我得到的结果:

我不明白为什么它没有在 subDocument 字中返回我的其他属性。你能帮我理解我做错了什么吗?

谢谢,

马克西姆