Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 尝试通过mongoose在带有nodejs的文档上保存对象时出现问题_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 尝试通过mongoose在带有nodejs的文档上保存对象时出现问题

Node.js 尝试通过mongoose在带有nodejs的文档上保存对象时出现问题,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我得到了这个模式: var schema = { id : { type:Number, unique:true }, name : String, kind : String, size : Object, skin : String, position : Object,

我得到了这个模式:

var schema = {
    id                  : { type:Number, unique:true },
    name                : String,
    kind                : String,
    size                : Object,
    skin                : String,
    position            : Object,
    velocity            : Object,
    acceleration        : Object,
    spritesheet         : String,
    animation           : Object,
    animations          : Object,
    currentAnimation    : String,
    visible             : Boolean
};
注意:以下
是业务对象的实例
this.dao
设置如下:

这里是我获取数据的方法:

this.dao.findOne({"id":id},(function(err,result){
    this.data = result;
}).bind(this)) ;
我在我的对象中这样保存:

this.data.save((function(err,result,row){
    if(err !== null) throw err;
    if(row === 1) {
        console.log(result);
        this.emit("saved");
    }
}).bind(this)) ;
问题:

它对模式中的很多类型都很有效,但我在
Object
type方面遇到了奇怪的问题

当我试图保存数据时,它适用于所有对象类型,但不适用于对象类型。控制台中显示了一个console.log(this.data.position)
{x:100,y:200}
。但是如果我像这样更改
data.position
data.position={x:100,y:200}
并在它工作后保存

我的假设:

可能是我的数据。当我尝试保存位置时,该位置具有原型属性,但无法保存数据。问题是我没有错误,在save函数的回调中,
result
var显示了我的应用程序数据

注意:我只是看到它不是一个正式的SchemaType()

我的问题:

如何在mongoose文档中正确保存
对象
? 如果保存失败,为什么我没有错误

(我更新到了最新版本3.8.8,我得到了同样的问题)。

我得到了:

在混合类型(我的对象类型是什么)中,我们需要向mongoose指定它们随下面的函数而改变:

this.data.markModified('position')

this.data.save((function(err,result,row){
    if(err !== null) throw err;
    if(row === 1) {
        console.log(result);
        this.emit("saved");
    }
}).bind(this)) ;