41 votes

Nodejs/mangouste. quelle approche est préférable pour créer un document ?

J'ai trouvé deux approches pour créer un nouveau document dans nodejs lorsque je travaille avec mongoose.

Premièrement :

 var instance = new MyModel();
instance.key = 'hello';
instance.save(function (err) {
  //
});

Seconde

 MyModel.create({key: 'hello'}, function (err) {
  //
});

Y a-t-il une différence?

2voto

iLoveUnicorns Points 195

Je préfère un exemple simple avec des valeurs utilisateur prédéfinies et un contrôle de validation côté modèle.

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

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

Ensuite, vous devriez utiliser des validateurs dans la classe de modèle (parce que cela peut être utilisé à d'autres endroits, cela aidera à réduire les erreurs/accélérer le développement)

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

2voto

DevWeb Points 205

Ce code sert à enregistrer un tableau de documents dans la base de données :

 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)' permet de créer une collection avec le nom du modèle et d'exécuter la .save() pour le document uniquement dans le tableau.

Alternativement, vous pouvez enregistrer un seul document de cette manière :

 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)

});

0voto

iAviator Points 276

Create va créer un nouveau document tandis que save est utilisé pour mettre à jour le document.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X