2016-07-20 19 views
0

以下は、ドキュメントを保存しようとしたが動作しなかったさまざまな方法です。私は間違って何をしていますか?それは静的を使用する正しい方法ですか?方法はここに必要ですか?はいの場合、この状況でどのように実装されますか?save()mongooseの統計では動作しません

方法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); 
}; 

方法5:JohnnyHK suggested way

userSchema.statics.saveUser = function(data, callback){ 
    var user = new this(); 
    user.data = data; 
    user.save(callback); 
}; 

使用this.create(データ、コールバック)する場合は、この

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 

すべてが正常に動作しますようuserSchemaがあります。保存の代わりにいくつかの理由で保存を使用したい。

データ保存メソッドがインスタンスでのみ使用可能ですので

[ { _id: '2A864493-52614B19', 
    name: 'xyz', 
    date: 'some date', 
    ... 
    ... 
    ... 
    city: 'adf' 
} ] 

答えて

0

保存のためにそれを使用する前に、あなたは、あなたのモデルのインスタンスを作成する必要があります。

var User = mongoose.model('user', UserSchema); 

UserSchema.statics.saveUser = function(data, callback){ 
    var user = new this(data); 
    user.save(callback); 
}; 

大文字を追加して変数の重複を避けてください。の方が読みやすく、危険性が低いです。

マングースのドキュメント:http://mongoosejs.com/docs/models.html

+0

これは私にエラー "パス' _id'が必要です" を与えます。保存する直前にユーザーをログすると、結果はnullになります。インスタンスデータを作成した後の意味はnullになります。 –

+0

PostにUserSchemaを追加できますか? –

+0

確かに追加されました。チェックしてください。 –

関連する問題