MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jaki jest odpowiednik findOne używającej .aggregate w Mongodb?

Rozważ przykładowe names kolekcja:

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

i uruchom następujące trzy zapytania za pomocą findOne :

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

wynik jest taki sam dla trzech zapytań:

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


Odpowiadające zapytania odpowiednio przy użyciu agregacji są następujące, z tym samym wynikiem:

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

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


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


db.collection.findOne definicja mówi -

Z findOne jeśli nie zostanie znaleziony żaden dokument, zwraca null . Ale agregacja zwraca kursor i możesz zastosować metody kursora na wynik.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak mogę wyłączyć komunikaty dziennika MongoDB w konsoli?

  2. Jak połączyć się z MongoDB uruchomionym w kontenerze Docker?

  3. MongoDB, wielokrotne zliczanie (z $exists)

  4. $pull . MongoDB

  5. pobieranie InvalidOperationException podczas wykonywania zapytań za pomocą AsQueryable w C#