sql >> Database >  >> NoSQL >> MongoDB

Wat is het equivalent van findOne met .aggregate in Mongodb?

Overweeg een voorbeeld van names collectie:

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

en voer de volgende drie zoekopdrachten uit met findOne :

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

het resultaat is hetzelfde voor de drie zoekopdrachten:

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


De equivalente zoekopdrachten die respectievelijk gebruik maken van aggregatie zijn de volgende, met hetzelfde resultaat:

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

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


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


db.collection.findOne definitie zegt -

Met findOne als er geen document wordt gevonden, retourneert het een null . Maar een aggregatie geeft een cursor terug en u kunt de cursormethoden op het resultaat.



  1. PHP opstarten Kan dynamische bibliotheek php_mongo.dll niet laden

  2. (knooppunt:71307) [DEP0079] BeëindigingWaarschuwing

  3. Wat betekent authSource in de URL van de mongo-database?

  4. MongoDB - afsluiten met code 48