如何在Mongoose Schema中向数组添加数据

时间:2014-10-02 19:44:34

标签: node.js mongodb mongoose geojson

假设以下架构,我试图用Mongoose

保存一些GeoJSON数据
var simpleSchema = new Schema({
    properties:{
        name:String,
        surname:String
    },
    location : {
        type : String,
        coordinates : [ Number , Number ]
    }
});

这是我尝试保存文档的方式

var a = new simple({properties:{name:"a", surname:"b"}, location:{type:"Point", coordinates:[1, 0]}}).save(function(err){...});

但是,我在数据库中得到的是

ObjectId("542da9ab0882b41855ac3be0"), "properties" : { "name" : "a", "surname" : "b" }, "__v" : 0 }

看起来整个位置标记和数据都缺失了。这是定义模式的错误方法还是保存文档的错误方法?

1 个答案:

答案 0 :(得分:2)

在嵌入对象中使用名为type的字段时,需要使用对象来定义其类型,或者Mongoose认为您正在定义对象本身的类型。

因此,请将架构定义更改为:

var simpleSchema = new Schema({
    properties:{
        name:String,
        surname:String
    },
    location : {
        type : { type: String },
        coordinates : [ Number , Number ]
    }
});