sql >> Databasteknik >  >> NoSQL >> MongoDB

Förstå hitta i Node/Mongo

Jag medger att det här fallet är lite konstigt. Här är för v2.2 av mongodb-native.

Först av allt, find har två olika användningsområden . Du kan antingen ge en återuppringningsfunktion eller inte. Men i i alla fall , returnerar den synkront ett objekt. Mer exakt är det en markör .Vi kan förvänta oss en asynkron mekanism när vi skickar en återuppringning men inte här.

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

ELLER

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

Å andra sidan, toArray är en asynkron funktion och har även två olika användningsområden. Den här gången är det returnerade objektet annorlunda beroende på argumenten.

Är likvärdiga:

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

OCH

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

I det första anropet, toArray returnerar undefined medan den i den andra returnerar ett Promise .




  1. Det går inte att hämta _id-värdet med hjälp av mgo med golang

  2. systemctl hittades inte när en mongo-bild byggdes

  3. Skapa en databas i MongoDB

  4. Nya säkerhetskopieringshantering och säkerhetsfunktioner för MySQL och PostgreSQL:ClusterControl Release 1.6.2