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

Какво е еквивалентът на findOne, използващ .aggregate в Mongodb?

Помислете за примерни names колекция:

{ _id: 1, name: "Jack", favoriteColor: "blue" },
{ _id: 2, name: "James", favoriteColor: "red" },
{ _id: 3, name: "John", favoriteColor: "blue" }

и изпълнете следните три заявки с помощта на findOne :

db.names.findOne( { _id: 1 } )
db.names.findOne()
db.names.findOne( { favoriteColor : "blue" } )

резултатът е един и същ за трите заявки:

{ "_id" : 1, "name" : "Jack", "favoriteColor" : "blue" }


Еквивалентните заявки, съответно използващи обобщаване са следните със същия резултат:

db.names.aggregate( [
  { $match: { _id: 1 } },
] )

db.names.aggregate( [
  { $limit: 1 }
] )


db.names.aggregate( [
  { $match: { "favoriteColor" : "blue" } },
  { $limit: 1 }
] )


db.collection.findOne дефиницията казва -

С findOne ако не бъде намерен документ, той връща null . Но обединяване връща курсор и можете да приложите методите на курсора върху резултата.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Възможно ли е да се направи заявка за диапазон от хешове на хеширан индексиран ключ в mongodb?

  2. Вграждането на схеми дава грешка

  3. Как Trello съхранява данни в MongoDB? (Колекция на дъска?)

  4. MongoDB + Python - много бавна проста заявка

  5. Най-добри практики за стартиране на MongoDB в клъстер