一对一与mongoose的关系?

我知道如何在Mongoose实体之间build立一对多的关系,使用下列types的代码:

friends: [{type: ObjectId, ref: 'User'}] 

但是如果我只想要一对一的关系呢 – 比如这个用户和哪个客户端有关系?

首先,MongoDB中的关系与基于SQL的数据存储中的关系有很大的区别(从一开始就需要明确这一点)。

MongoDB中的关系只是相关数据的表示。 没有维护这些关系完整性的机制。

什么mongoose与refs只是使用具有ref选项的字段来查询引用集合中文档的_id字段。 这用于populate操作(内部调用目标集合上的findById查询并用文档replace引用的字段)。

清除后,您可以在该字段中存储所引用集合的一个或多个ID,从而创build一对一或一对多的“关系”。

因此,要为引用的集合存储一个ID,语法是:

 client: {type: Mongoose.Schema.Types.ObjectId, ref: 'Client'} //No arrays, as we want to store a single ID only. 

以同样的方式,你可以存储被引用的集合的许多ID,如下所示:

 friends: [{type: Mongoose.Schema.Types.ObjectId, ref: 'User'}] //The array stores multiple IDs, creating a one-to-many "relationship" 

编辑:

确保您在开始时require使用Mongoose模块。

 var Mongoose = require('mongoose');