mongooseJS无法使用项目填充订单

时间:2015-08-17 10:49:29

标签: node.js mongodb mongoose

我正在尝试让mongoose populate工作。

我有两个模型用于订单,另一个用于订单商品。

我这样做纯粹是为了理解填充。

我确实有两个文件,但我现在已将所有内容都放在一个名为main.js

的文件中

main.js在项目模型中创建3个项目。

然后我尝试使用3个项目填充订单模型。

查询的输出现在提供正确的填充结果。

也就是说行

的输出

console.log(JSON.stringify(orders,null,“\ t”);

现在是:

[     {         “_id”:“55d32e4594db780b1bbb4372”,         “__v”:0,         “线”:[             {                 “价格”:2.4,                 “数量”:5,                 “_id”:“55d32e4594db780b1bbb436f”,                 “__v”:0             },             {                 “价格”:3.7,                 “数量”:7,                 “_id”:“55d32e4594db780b1bbb4370”,                 “__v”:0             },             {                 “价格”:1.2,                 “数量”:3,                 “_id”:“55d32e4594db780b1bbb4371”,                 “__v”:0             }         ]     } ]

但是数据库没有填充。

以下是main.js文件

TextBlock

1 个答案:

答案 0 :(得分:0)

对于populate方法的用途似乎有些困惑。本质上是猫鼬版本的“ join”。它允许查询(或文档)自动检索和“联接”任何关联的文档并返回修改后的文档。对于要填充的文档中的每个引用值,populate方法将执行单独的查询以获取那些关联的文档(通常是通过ID,但可以是自定义查询),然后在内存中它将用检索到的文档替换引用。

它完全不会更改集合中的文档,因为这纯粹是提取操作。