sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvad svarer til findOne, der bruger .aggregate i Mongodb?

Overvej et eksempel på names samling:

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

og kør følgende tre forespørgsler ved hjælp af findOne :

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

resultatet er det samme for de tre forespørgsler:

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


De tilsvarende forespørgsler ved hjælp af henholdsvis aggregering er følgende med samme resultat:

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

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


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


db.collection.findOne definition siger -

Med findOne hvis intet dokument findes, returnerer det en null . Men en aggregering returnerer en markør, og du kan anvende markørmetoderne på resultatet.



  1. Sådan formateres tal med kommaer i SQL

  2. Hvordan tæller du mængden af ​​dokumenter i en MongoDB-samling i Node?

  3. Fjern kun ét dokument i MongoDB

  4. Langsom paginering over tonsvis af poster i mongodb