假设采用以下架构,我尝试使用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 ]
}
});
我想用相当复杂的方案更新文档。 我想用原子更新来做(而不是在内存中修改它,然后调用.save())。 }); ////////////////////////////////////////////////////////////// 我有事件id(_id)、会话(id)和需要添加/删除项到投票人数组。
请您告诉我,在创建Mongoose模式时,有什么方法可以限制数组的大小。例如
问题内容: 我坚持了这一点,但我无法继续前进-我猜解决方案很简单,但我不知道。我正在尝试在reducer中添加条目,以便输入的数据看起来像这样: 到目前为止,这是我得到的最接近的内容,但是,它没有添加新的唯一条目,而是替换了已经存储的条目。另外,我还需要能够将此项目添加到entryId,entryName还不存在的空状态,以避免出现错误: 知道我在做什么错吗? 问题答案: 如果要在数组的末尾添加元
问题内容: 您能否告诉我在创建Mongoose模式时是否有任何方法可以设置数组大小的限制。例如 问题答案: 稍微调整一下架构设置,即可添加验证选项:
我有这样的代码: 当我这样做邮递员的时候: 我得到以下错误: d:\stijn\documenten\eva-project-groep-6\api\node_modules\mongoose\lib\schema\obj ectid.js:134抛出新的CastError('objectid',value,this.path);^Error at mongooseerror.casterror(