如何在Mongoose模式中向数组添加数据

假设采用以下架构,我尝试使用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 }

看起来整个位置标签和数据都丢失了。这是定义架构的错误方法还是保存文档的错误方法?

回答:

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

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

var simpleSchema = new Schema({

properties:{

name:String,

surname:String

},

location : {

type : { type: String },

coordinates : [ Number , Number ]

}

});

以上是 如何在Mongoose模式中向数组添加数据 的全部内容, 来源链接: utcz.com/qa/431516.html

回到顶部