我有以下文档架构:
var pageSchema = new Schema({
name: String
, desc: String
, url: String
})
Run Code Online (Sandbox Code Playgroud)
现在,在我的应用程序中,我想在对象内部有页面的html源代码,但我不想将它存储在数据库中.
我应该创建一个"本地"增强对象,它具有对db文档的引用吗?
function Page (docModel, html) {
this._docModel = docModel
this._html = html
}
Run Code Online (Sandbox Code Playgroud)
有没有办法通过添加"虚拟"字段直接使用文档模型?
关于mongoose中mongo ObjectId的一些问题
1) 可以不是命名为 _id 的 ObjectId 字段吗?以及如何做到这一点?当我在我的代码中做:
MySchema = new mongoose.Schema({
id : mongoose.Schema.ObjectId
});
Run Code Online (Sandbox Code Playgroud)
它什么都不改变。
2)如果我有一个名为 _id 的 objectId 字段,是否可以从请求返回此字段的另一个名称(例如,只是“id” - 在 Web 响应中发送它);
3) 问题只是为了理解:为什么 ObjectId _id 字段可以通过“id”属性而不是“_id”访问?
谢谢,亚历克斯
考虑我的集合在MongoDB中存储如下:
{
_id: 'Unique_Value',
FieldMONGO1: 'ngfn',
FieldMONGO2: { SomeKey: ['val1','val2','val...'] },
}
Run Code Online (Sandbox Code Playgroud)
当我在Mongoose的Model Instance上使用find方法检索时.我得到以下JSON输出:
{
_id: 'Unique_Value',
FieldMONGO1: 'NAME_value',
FieldMONGO2: { SomeKey: ['val1','val2','val...'] },
}
Run Code Online (Sandbox Code Playgroud)
两者完全相同.
问:有没有什么办法让我可以改变字段名称,如FieldMONGO1到FirstName,FieldMONGO2到NewName&_id来IdentityNo?
所以我的输出将是这样的:
{
IdentityNo: 'Unique_Value',
FirstName: 'ngfn',
NewName: { SomeKey: [] },
}
Run Code Online (Sandbox Code Playgroud)
知道解决方案:是按原样获取JSON输出,然后在Node.js代码中更改字段(属性)名称.但问题在于,它变成了阻塞代码.如果请求大量数据,这可能会在服务器上产生开销.
任何人都可以帮我找出一些有效的方法吗?
提前谢谢