以下是我尝试保存文档但不起作用的各种方法。我究竟做错了什么?这是使用静态的正确方法吗?这方面需要方法吗?如果是,在这种情况下如何实施?
方法1:
userSchema.statics.saveUser = function(data, callback){
data.save(callback);
};
结果 - 保存不是函数
方法2:
userSchema.statics.saveUser = function(data, callback){
data = new userSchema(data);
data.save(callback);
};
结果 - userSchema不是函数
方法3:
userSchema.statics.saveUser = function(data, callback){
var user = new user(data);
data.save(callback);
};
var user = Mongoose.model('user', userSchema);
结果 - 用户不是函数
修改
即使以下方法似乎也不起作用
方法4:
userSchema.statics.saveUser = function(data, callback){
var user = new this(data);
user.save(callback);
};
userSchema.statics.saveUser = function(data, callback){
var user = new this();
user.data = data;
user.save(callback);
};
userSchema就像这样
var db = require('../database');
var Mongoose = db.Mongoose;
require('mongoose-long')(Mongoose);
var SchemaTypes = Mongoose.Schema.Types;
var userSchema = new Mongoose.Schema({
_id:{ type: String, required: true, unique:true },
// many fields with type as string and number
.
.
.
Number:{ type: SchemaTypes.Long, min: 0, default: 0},
});
// query functions here
var user = Mongoose.model('user', userSchema);
// exporting model here
如果使用this.create(数据,回调),一切正常;而不是保存但我想出于某些原因使用保存。
使用它进行保存之前的数据
[ { _id: '2A864493-52614B19',
name: 'xyz',
date: 'some date',
...
...
...
city: 'adf'
} ]
答案 0 :(得分:1)
您需要创建模型的实例,因为 save 方法仅适用于实例。
var User = mongoose.model('user', UserSchema);
UserSchema.statics.saveUser = function(data, callback){
var user = new this(data);
user.save(callback);
};
并且请通过添加一些大写来避免重复变量。它更具可读性和危害性。
Mongoose文档: http://mongoosejs.com/docs/models.html