我正在尝试让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
答案 0 :(得分:0)
对于populate
方法的用途似乎有些困惑。本质上是猫鼬版本的“ join”。它允许查询(或文档)自动检索和“联接”任何关联的文档并返回修改后的文档。对于要填充的文档中的每个引用值,populate
方法将执行单独的查询以获取那些关联的文档(通常是通过ID,但可以是自定义查询),然后在内存中它将用检索到的文档替换引用。
它完全不会更改集合中的文档,因为这纯粹是提取操作。