sql >> Database >  >> NoSQL >> MongoDB

Begrijpen vinden in Node/Mongo

Ik geef toe, deze zaak is een beetje raar. Hier is voor de v2.2 van mongodb-native.

Allereerst, find heeft twee verschillende toepassingen . Je kunt een callback-functie geven of niet. Maar in in ieder geval , het retourneert synchroon een voorwerp. Meer precies is het een cursor .We zouden een asynchroon mechanisme kunnen verwachten bij het doorgeven van een callback, maar niet hier.

collection.find({ }, function (err, cursor) {
  assert(!err);
});
console.log('This happens after collection.find({ }, callback)');

OF

const cursor = collection.find({});
console.log('Also happening after');

Aan de andere kant, toArray is een asynchrone functie en heeft ook twee verschillende gebruiksmogelijkheden. Deze keer is het geretourneerde object anders, afhankelijk van de argumenten.

Zijn gelijkwaardig:

cursor.toArray(function (err, documents) {
  assert.equal(1, documents.length);
});

EN

cursor.toArray()
  .then(documents => {
    assert.equal(1, documents.length);
  });

In de eerste aanroep, toArray retourneert undefined terwijl het in de tweede een Promise . retourneert .




  1. Azure DataBricks Stream foreach mislukt met NotSerializableException

  2. Hoe het resultaat aggregeren en samenvoegen tot een verzameling?

  3. Wat is de standaard sessietime-out en hoe deze te configureren bij gebruik van de Spring Session met Redis als backend

  4. MongoDB-aggregatie:dubbele lookup en lookup-reactie samenvoegen met respectief object