当前位置 : 主页 > 网页制作 > Nodejs >

node.js – mongoose – ‘save’方法不存在

来源:互联网 收集:自由互联 发布时间:2021-06-16
考虑在MongooseJS上运行的 mongodb集合. 示例代码: Person.where('uid').equals(19524121).select('name').exec(function(err, data){ // Here I can get the data correctly in an array. console.log(JSON.stringify(data)); data[0].name =
考虑在MongooseJS上运行的 mongodb集合.

示例代码:

Person.where('uid').equals(19524121).select('name').exec(function(err, data){
     // Here I can get the data correctly in an array.
     console.log(JSON.stringify(data)); 
     data[0].name = "try to save me now"; // Select the first item in the array
     data[0].save(); // Object #<Promise> has no method 'save'.
}

错误 – 似乎找不到解决这个问题的方法.

Object #<Promise> has no method ‘save’;

我对为什么会发生这种情况感到有些困惑,我已经研究了很多,似乎无法找到直接的答案.

查找的结果是一组记录.你可能想要循环这些记录,如下所示:

Person.find({ uid: /19524121/ }).select('name').exec(function(err, data){
  for(var i = 0; i < data.length; i++) {
     var myData = new Person(data[i]);
     myData.name = "try to save me now";
     myData.save(); // It works now!
  }
}

此外,从the mongoose homepage开始,函数回调原型似乎是函数(错误,数据),而不是相反,你在上面纠正过.

从主页看这个:

var fluffy = new Kitten({ name: 'fluffy' });

如果data [0]当前有一个普通的JSON对象,我们需要这样一行来转换为BSON模型对象.

var myData = new Person(data[0]);
网友评论