【发布时间】:2016-05-04 10:59:30
【问题描述】:
您好,我在决定从 node.js 将我的对象存储在 monogoDB 数据库中的正确方法时遇到了麻烦。
我的类的精简示例如下所示,实际上它要复杂得多:
function Object1{
var variables;
var object2:
var object3:
functions
...
}
function Object2{
var variables;
var object4;
var object5;
...
functions
...
}
...
etc
Object1 中的典型函数调用会导致对其他对象以及属于这些对象的对象的多次调用。
如果我将 object1 存储在 mongoDB 中,则无法存储函数。根据我的研究,我有两个选择:
-
在加载对象时更改对象原型,根据this answer
问题:然后我会被要求更改每个后续对象的原型,但考虑到大量后续对象,这似乎不是正确的做法,是否有简单的方法来做到这一点?
-
使用 mongoose 模式定义对象,允许我使用虚拟对象来存储 this example 中的函数。
这将导致以下结果:
var objectSchema = new Schema({ variables: Type object2: Schema.ObjectId }); virtual functions ...问题:在这种情况下,每次我想访问变量,或调用其他对象 ID 位于架构中的对象中的虚函数时,我都必须在数据库上调用 find()。与有一个加载对象并将信息轮次传递给后续函数的数据库调用相比,这可能会导致大量的数据库调用,这使得该选项似乎也无效?
问题:有没有比这两种方法更好的方法?
【问题讨论】:
标签: javascript node.js mongodb model-view-controller mongoose