2012-02-16 4 views

答えて

36

はい、主な違いは、保存する前に計算を行うか、新しいモデルを構築する際に表示される情報に反応することです。最も一般的な例は、保存しようとする前にモデルが有効であることを確認することです。他の例では、保存前に不足している関係、他の属性に基づいてオンザフライで計算する必要がある値、存在する必要がありますがデータベースに保存されない可能性のあるモデル(中止されたトランザクション)があります。

だから、あなたができることのいくつかの基本的な例として:

var instance = new MyModel(); 

// Validating 
assert(!instance.errors.length); 

// Attributes dependent on other fields 
instance.foo = (instance.bar) ? 'bar' : 'foo'; 

// Create missing associations 
AuthorModel.find({ name: 'Johnny McAwesome' }, function (err, docs) { 
    if (!docs.length) { 
    // ... Create the missing object 
    } 
}); 

// Ditch the model on abort without hitting the database. 
if(abort) { 
    delete instance; 
} 

instance.save(function (err) { 
    // 
}); 
+4

ありがとう、素敵な説明:) –

+0

この方法以外では、自分でIDを生成する必要があります。 mongoose.Types.ObjectId()は_idの書式です。 –

+0

asyncとsyncの両方の操作は同期していますか? – JohnnyQ

0

Iは、事前定義されたユーザー値と妥当性チェックモデル側との簡単な例を好みます。 (これは他の場所で使用することができますので、これは/エラーを減らすのに役立つ開発をスピードアップします)次に

// Create new user. 
    let newUser = { 
     username: req.body.username, 
     password: passwordHashed, 
     salt: salt, 
     authorisationKey: authCode 
    }; 

    // From require('UserModel'); 
    return ModelUser.create(newUser); 

あなたは

// Save user but perform checks first. 
gameScheme.post('pre', function(userObj, next) { 
    // Do some validation. 
}); 
3

このコードは、保存するためであるモデルクラスでバリデータを使用する必要がありますモデルの名前でコレクションを作成し、を実行

app.get("/api/setupTodos", function (req, res) { 

var nameModel = mongoose.model("nameModel", yourSchema); 
//create an array of documents 
var listDocuments= [ 
    { 
     username: "test", 
     todo: "Buy milk", 
     isDone: true, 
     hasAttachment: false 
    }, 
    { 
     username: "test", 
     todo: "Feed dog", 
     isDone: false, 
     hasAttachment: false 
    }, 
    { 
     username: "test", 
     todo: "Learn Node", 
     isDone: false, 
     hasAttachment: false 
    } 
]; 

nameModel.create(listDocuments, function (err, results) { 

    res.send(results); 
}); 

「nameModel.create(listDocuments)」許可:データベースへの文書の配列配列への文書のみの10メソッド。

また、あなたはこのように1文書のみを保存することができます:

var myModule= mongoose.model("nameModel", yourSchema); 

    var firstDocument = myModule({ 
     name: String, 
surname: String 
    }); 

firstDocument.save(function(err, result) { 
    if(if err) throw err; 
    res.send(result) 

});

関連する問題