问题标签 [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.
mongodb - 使用 ObjectID 填充嵌套数组
试图在我的架构中填充 ObjectID 的数组。我查看了类似的答案,但似乎每个人的做法都略有不同,我自己也找不到解决方案。
我的架构如下所示:
到目前为止,我一直在尝试像这样填充它,这显然是行不通的
我讨厌添加到人口问题列表中,但我查看了很多,但没有找到解决方案。任何帮助是极大的赞赏!
编辑:这是我向文档添加管理员的方式
node.js - 猫鼬模型在填充后获得未定义的属性
我遇到了一个基本请求的问题。我获取的猫鼬模型的所有属性都未在 exec() 回调中定义。
这是我的架构:
您已经注意到我的“朋友”属性是一个引用另一个模式的对象数组。
现在这是我的查询:
当此 Web 服务返回“_user”时,每个属性都已明确定义并具有正确的值。问题是我只想返回 _user.friends 这是不可能的,因为它是未定义的。
现在,这里是 apiUtils.jsonResponse 函数:
还有 cleanResults 函数:
我尝试设置超时以查看问题是否来自异步,但它没有改变。我现在有点绝望,我想知道你以前是否遇到过同样的问题?
angularjs - 路径“e”处的值“[object Object]”转换为 ObjectId 失败
以下是我的架构
api.js
我填充对象“e”和“f”。但是,我会在路径“e”处收到错误 Cast to ObjectId failed for value “[object Object]” .. 它也发生在“f”
mongodb - mongo mongoose 填充子文档返回 null
我正在尝试使用节点和猫鼬的填充方法来在查询中“加入”2 个集合。以下是我的架构设置:
我还设置了 Stat mongoose 模型,以便查询可以正常工作(但结果不是我所期望的)。
我尝试执行以下查询:
这给了我正确的结果,并且正确引用了 ssss。结果是这样的。
但是,以下查询给了我错误的结果。
这给了我所有结果的 rating.stat = null 。有人能告诉我我做错了什么吗?谢谢。
node.js - 猫鼬填充问题 - 数组对象
我的架构如下
部分模式
文档架构
api.js
如果我这样做,我的“文档”对象是 []。但是,如果我删除,“populateArray.push('documents');” 然后我得到文件:['5adfsadf525sdfsdfsdfssdfsd'] -- 一些对象 ID(至少)
请让我知道我需要填充的方式。
谢谢。
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中。你有什么主意吗?您是否特别有更好的解决方案来实现多站点/多数据库环境?
node.js - 无法在返回 null 的 mongoose 中填充
我试图创建一个 FoodItem 架构,在其中我将 measureUnit 作为另一个页面模型的对象引用。
这是存在 measureUnit 的 MeasureTypesSchema。MeasureTypes 是 MetricsSchema 中的嵌入式数组文档。我正在导出 MeasureTypesSchema 的模型 (MeasureTypes) 和 MetricsSchema 的模型 (Metrics)。
这是 FoodItemSchema,我将 measureUnit 作为另一个页面中存在的 MeasureTypes 模型的对象引用
我需要在填充时获取 measureUnit 的详细信息,如何填充以便获取 measureUnit 的详细信息。
mongodb - 基于ObjectId引用条件的MongoDB查询
我有一个 MongoDB 集合Cats
,其中有一个 ObjectId 引用字段zooId
到 collection Zoo
。
我将如何去查询类似
db.Cats.find({zooId.zooName: 'San Diego'}).count()
查询的条件是参考中的字段zooName
在zooId
哪里?
我理解通过使用 Mongoose,我可以调用该populate
方法来实际获取某些引用,但是我将如何直接在 mongodb 控制台或 RoboMongo 中执行类似的操作?
谢谢!
express - Mongoose 的填充方法打破了承诺链?
所以我有一个看起来像这样的猫鼬模式:
*请注意,职位文档可以在ResponsibleTo
字段中引用自身。
现在,我正在尝试构建一个方法来搜索Positions
集合、填充currentlyHolding[].person.name field
和responsibleTo.currentlyHolding[].person.name
字段,并返回找到的记录总数(用于前端的分页目的)。
这是我的代码的样子:
我的问题是当我使用 populate 方法运行第一个查询时(如图所示),它不起作用。我带走了人口,它起作用了。populate 方法会破坏承诺,这是真的吗?如果是这样,有没有更好的方法来实现我想要的?
node.js - Moogoose 自我参考未填充
我在猫鼬中有这样的自我参考:
我想用 find 取回我的模型的属性内容:
这是我得到的结果:
我不明白为什么它没有在 subDocument 字中返回我的其他属性。你能帮我理解我做错了什么吗?
谢谢,
马克西姆