MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Разбиране на намирането в Node/Mongo

Признавам ви, този случай е малко странен. Ето за v2.2 на mongodb-native.

Първо, find има две различни употреби . Можете или да дадете функция за обратно извикване, или не. Но във всички случаи , той се връща синхронно предмет. По-точно това е курсор .Можем да очакваме асинхронен механизъм при предаване на обратно извикване, но не и тук.

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

ИЛИ

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

От друга страна, toArray е асинхронна функция и също има две различни употреби. Този път върнатият обект е различен в зависимост от аргументите.

Еквивалентни са:

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

И

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

В първото извикване, toArray връща undefined докато във втория връща Promise .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Обработка на изчаквания с Node.js и mongodb

  2. Mongo DB агрегиране с масив от обекти

  3. Как да създадете MongoDB MultiKey индекс на атрибут на елементи в масив .NET драйвер

  4. MongoDb:как да създадете правилния (съставен) индекс за данни с много полета за търсене

  5. Поради ограниченията на изключението com.mongodb.BasicDBObject при добавяне на множество критерии GridFSDBFile заявка