Quelles sont les différentes manières d'insérer un document (enregistrement) dans MongoDB à l'aide de Mongoose?
Ma tentative actuelle:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var notificationsSchema = mongoose.Schema({
"datetime" : {
type: Date,
default: Date.now
},
"ownerId":{
type:String
},
"customerId" : {
type:String
},
"title" : {
type:String
},
"message" : {
type:String
}
});
var notifications = module.exports = mongoose.model('notifications', notificationsSchema);
module.exports.saveNotification = function(notificationObj, callback){
//notifications.insert(notificationObj); won't work
//notifications.save(notificationObj); won't work
notifications.create(notificationObj); //work but created duplicated document
}
Une idée de pourquoi l'insertion et la sauvegarde ne fonctionnent pas dans mon cas? J'ai essayé de créer, il a inséré 2 document au lieu de 1. C'est étrange.
La .save()
est une méthode d'instance du modèle, tandis que la .create()
est appelée directement à partir de la Model
en tant qu'appel de méthode, de nature statique, et prend l'objet. comme premier paramètre.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var notificationSchema = mongoose.Schema({
"datetime" : {
type: Date,
default: Date.now
},
"ownerId":{
type:String
},
"customerId" : {
type:String
},
"title" : {
type:String
},
"message" : {
type:String
}
});
var Notification = mongoose.model('Notification', notificationsSchema);
function saveNotification1(data) {
var notification = new Notification(data);
notification.save(function (err) {
if (err) return handleError(err);
// saved!
})
}
function saveNotification2(data) {
Notification.create(data, function (err, small) {
if (err) return handleError(err);
// saved!
})
}
Exportez les fonctions de votre choix à l'extérieur.
Pour plus d'informations sur Mongoose Docs , ou envisagez de lire la référence du prototype Model
en mangouste.