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

Jaký je ekvivalent findOne pomocí .aggregate v Mongodb?

Zvažte ukázkové names kolekce:

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

a spusťte následující tři dotazy pomocí findOne :

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

výsledek je stejný pro tři dotazy:

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


Ekvivalentní dotazy pomocí agregace jsou následující se stejným výsledkem:

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

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


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


db.collection.findOne definice říká -

Pomocí findOne pokud není nalezen žádný dokument, vrátí null . Ale agregace vrátí kurzor a můžete použít metody kurzoru na výsledku.



  1. Jak vytvořit indexy nerozlišující malá a velká písmena v MongoDB

  2. Jak integruji MongoDB se Solr?

  3. Seřadit dílčí dokumenty v MongoDB

  4. injekce mongoDB