sql >> Databáze >  >> NoSQL >> MongoDB

Selhání aktualizace vnořeného dokumentu Mongoose?

V B.update nepoužíváte správné názvy polí volání. Místo toho by to mělo být toto:

B.update(
    { 'PDFs._id': pdf_id },           // <== here
    { $set: {
        'PDFs.$.title': 'new title'   // <== and here
    }}, function (err, numAffected) {
        if(err) throw err;
        assert.equal(numAffected,1);
    }
);

Měli byste také opravit reset funkci nevolat zpětné volání, dokud save dokončí:

function reset(cb) {
  B.find().remove();
  // create some data with a nested document A
  var newA = new A( { title : "my title" })
  var newB = new B( { PDFs: newA});
  newB.save(cb);  // <== call cb when the document is saved
}



  1. Jak nakonfigurovat Rebus, aby měl témata založená na typu handlerů

  2. Meteor:Tracker.autorun / pozorovatel Změny a kolekce nefungují podle očekávání

  3. Vytváření testovacích dat pro MongoDB

  4. Proč mongoose používá schéma, když výhoda mongodb má spočívat v tom, že je bez schématu?