Sli*_*ppy 10 mongoose mongodb node.js
我知道如何使用以下类型的代码在Mongoose实体之间建立一对多的关系:
friends: [{type: ObjectId, ref: 'User'}]
Run Code Online (Sandbox Code Playgroud)
但是如果我想只有一对一的关系怎么办 - 比如这个用户与哪个客户有关?
ZeM*_*oon 10
首先,MongoDB中的关系与基于SQL的数据存储中的关系之间存在巨大差异(您需要从一开始就明确这一点).
MongoDB中的关系只是相关数据的表示.没有机制可以维护这些关系的完整性.
mongoose对refs的作用只是使用具有ref查询_id引用集合中的文档字段的选项的字段.这用于类似的操作populate(内部调用findById目标集合上的查询并用文档替换引用的字段).
清除后,您可以在字段中为引用的集合存储一个或多个ID,从而创建一对一或一对多"关系".
因此,要为引用的集合存储单个ID,语法将为:
client: {type: Mongoose.Schema.Types.ObjectId, ref: 'Client'} //No arrays, as we want to store a single ID only.
Run Code Online (Sandbox Code Playgroud)
以同样的方式,您可以为引用的集合存储许多ID,如下所示:
friends: [{type: Mongoose.Schema.Types.ObjectId, ref: 'User'}] //The array stores multiple IDs, creating a one-to-many "relationship"
Run Code Online (Sandbox Code Playgroud)
编辑:
确保required开头有Mongoose模块.
var Mongoose = require('mongoose');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7689 次 |
| 最近记录: |