【问题标题】:Mongoose Schema PrototypeMongoose 模式原型
【发布时间】:2015-09-03 23:10:53
【问题描述】:

我在 Mongoose 方案中有 4 个不同变量的类似对象,并希望创建一个对象数组以多次使用。我知道我可以使用例如Box: [Vector] array 但这很不方便。一个例子可以更好地解释它:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var Vector4 = new Schema({
    x: { type: Number },
    y: { type: Number },
    width: { type: Number },
    height: { type: Number }
});

module.exports = mongoose.model('Entity', new Schema({
    name: { type: String },
    version: { type: Number },
    AABB:     Vector4, // want the Vector Object here
    Box:      Vector4, // want the Vector Object here.
    Viewport: Vector4, // want the Vector Object here.
    Outline:  Vector4, // want the Vector Object here.
    ......
}));

我对 Mongoose 比较陌生,所以我可能做错了这个 Schema。任何输入都会很棒。

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    猫鼬模式只是一个基本的 JS 对象。你会做这样的事情:

    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;
    
    var Vector4 = {
        x: { type: Number },
        y: { type: Number },
        width: { type: Number },
        height: { type: Number }
    };
    
    module.exports = mongoose.model('Entity', new Schema({
        name: { type: String },
        version: { type: Number },
        AABB:     Vector4, // want the Vector Object here
        Box:      Vector4, // want the Vector Object here.
        Viewport: Vector4, // want the Vector Object here.
        Outline:  Vector4, // want the Vector Object here.
        ......
    }));
    

    区别在于Vector4 不是Schema,而只是一个对象。

    【讨论】:

    • 完美!你能链接到它说明这一点的 doc/api 吗?我找不到它。
    • 我认为它在文档中的任何地方都没有明确说明。但我是从这个页面推断出来的:mongoosejs.com/docs/guide.html
    猜你喜欢
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 2019-05-23
    • 2017-07-06
    • 2013-12-24
    相关资源
    最近更新 更多