Amr*_*pal 6 mongoose mongodb node.js
假设是/loginAPI 的情况,对于匹配的一组凭证,应该返回集合中的用户对象,哪种方法会更高效:
1)一个带投影查询的模型:
var UserSchema = new Schema({
name : String,
email : String,
dob : Number,
phone : Number,
gender : String,
location : Object, // GeoJSON format {type: 'Point', geometry: { lat: '23.00', lng: '102.23' }}
followers : [UserSchema],
following : [UserSchema],
posts : [PostSchema],
groups : [GroupSchema]
// ... and so on
});
Run Code Online (Sandbox Code Playgroud)
2)拆分模型:
var UserMinimalSchema = new Schema({
name : String,
email : String,
phone : Number,
location : Object,
});
var UserDetailSchema = new Schema({
dob : Number,
gender : String,
followers : [UserSchema],
following : [UserSchema],
posts : [PostSchema],
groups : [GroupSchema]
// ... and so on
});
Run Code Online (Sandbox Code Playgroud)
让我们说:
对于登录的用户,只有id,name,email,phone和location将被退回.
第一个模型将使用投影查询返回(1)中的属性.
在第二种情况下,只有UserMinimalSchema用于查询整个文档.
基本上两个查询都返回与(1)中提到的数据量完全相同的数据.
假设普通用户对象约为16MB,并且有1百万条记录.
如果有人对文档进行了这样的测试/链接,那么分析与否分开将会有多大帮助将是非常有帮助的.
我不会使用拆分模型:
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |