TL:DR;是否可以在文档中使用不同的名称foobarbaz
存储字段f
?
我目前正在计划一个新的数据库架构,它将包含大量文档(预计每天会有10到10万个文档)。所以我想缩短字段名称,因为它们会占用空间宠物文档。
但我想在我的架构中也有可读的名字。所以我的问题是:是否可以将模式字段与具有不同名称的文档字段连接?
架构:name
文件:n
答案 0 :(得分:0)
插件旨在为您在DB上的文档编写快捷键,但是在读取提取的文档时可以使用长的描述性名称。这将导致记忆数据所需的存储空间减少,无需记住短键含义。
var mongoose = require('mongoose');
var fieldsAliasPlugin = require('mongoose-aliasfield');
/*Describe a Schema*/
var PersonSchema = new Schema({
't' : {'type': Date, 'index': true, 'alias': 'timestamp'},
'n' : {'type' : String, 'alias': 'name'},
's' : {'type' : String, 'alias': 'surname'},
'p' : {
'a' : {'type' : String, 'alias': 'profile.address'},
'pn': {'type' : String, 'alias': 'profile.phone_number'}
}
});
/*Add field alias plugin*/
PersonSchema.plugin(fieldsAliasPlugin);
现在您的架构已创建,您可以使用别名字段名称来描述模型的实例
var person = new Person({
'timestamp' : new Date(),
'name' : 'Jhon',
'surname' : 'Doe',
'profile.address': 'Rue de Morgane',
'profile.phone_number': '051-123456 78',
});
person.save();