Suche…


Einführung

Grundlegende Abfragebeispiele

Finden()

alle Dokumente in einer Sammlung abrufen

db.collection.find({});

Abrufen von Dokumenten in einer Auflistung mithilfe einer Bedingung (ähnlich WHERE in MYSQL)

db.collection.find({key: value}); 
example
  db.users.find({email:"[email protected]"});

Abrufen von Dokumenten in einer Sammlung unter Verwendung boolescher Bedingungen (Abfrageoperatoren)

//AND
db.collection.find( {
    $and: [
     { key: value }, { key: value } 
    ] 
})
//OR
db.collection.find( {
    $or: [
     { key: value }, { key: value } 
    ] 
})
//NOT
db.inventory.find( { key: { $not: value } } )

Weitere boolesche Operationen und Beispiele finden Sie hier

HINWEIS: find () durchsucht die Sammlung auch dann weiter, wenn eine Dokumentübereinstimmung gefunden wurde. Daher ist es bei Verwendung in einer großen Sammlung ineffizient. Wenn Sie jedoch Ihre Daten sorgfältig modellieren und / oder Indizes verwenden, können Sie die Suche effizienter gestalten ( )

Einen finden()

db.collection.findOne({});

Die Abfragefunktion ist ähnlich wie bei find (). Die Ausführung wird jedoch in dem Moment beendet, in dem ein Dokument gefunden wird, das mit seiner Bedingung übereinstimmt. Wenn es mit einem leeren Objekt verwendet wird, wird es das erste Dokument abrufen und zurückgeben. findOne () Mongodb-API-Dokumentation

Dokument abfragen - Verwenden von AND-, OR- und IN-Bedingungen

Alle Dokumente aus der students .

> db.students.find().pretty();

{
    "_id" : ObjectId("58f29a694117d1b7af126dca"),
    "studentNo" : 1,
    "firstName" : "Prosen",
    "lastName" : "Ghosh",
    "age" : 25
}
{
    "_id" : ObjectId("58f29a694117d1b7af126dcb"),
    "studentNo" : 2,
    "firstName" : "Rajib",
    "lastName" : "Ghosh",
    "age" : 25
}
{
    "_id" : ObjectId("58f29a694117d1b7af126dcc"),
    "studentNo" : 3,
    "firstName" : "Rizve",
    "lastName" : "Amin",
    "age" : 23
}
{
    "_id" : ObjectId("58f29a694117d1b7af126dcd"),
    "studentNo" : 4,
    "firstName" : "Jabed",
    "lastName" : "Bangali",
    "age" : 25
}
{
    "_id" : ObjectId("58f29a694117d1b7af126dce"),
    "studentNo" : 5,
    "firstName" : "Gm",
    "lastName" : "Anik",
    "age" : 23
}

Ähnliche mySql Abfrage des obigen Befehls.

SELECT * FROM students;
db.students.find({firstName:"Prosen"});

{ "_id" : ObjectId("58f2547804951ad51ad206f5"), "studentNo" : "1", "firstName" : "Prosen", "lastName" : "Ghosh", "age" : "23" }

Ähnliche mySql Abfrage des obigen Befehls.

SELECT * FROM students WHERE firstName = "Prosen";

UND Abfragen

db.students.find({
    "firstName": "Prosen",
    "age": {
        "$gte": 23
    }
});

{ "_id" : ObjectId("58f29a694117d1b7af126dca"), "studentNo" : 1, "firstName" : "Prosen", "lastName" : "Ghosh", "age" : 25 }

Ähnliche mySql Abfrage des obigen Befehls.

SELECT * FROM students WHERE firstName = "Prosen" AND age >= 23

Oder Abfragen

db.students.find({
     "$or": [{
         "firstName": "Prosen"
     }, {
         "age": {
             "$gte": 23
         }
     }]
 });

{ "_id" : ObjectId("58f29a694117d1b7af126dca"), "studentNo" : 1, "firstName" : "Prosen", "lastName" : "Ghosh", "age" : 25 }
{ "_id" : ObjectId("58f29a694117d1b7af126dcb"), "studentNo" : 2, "firstName" : "Rajib", "lastName" : "Ghosh", "age" : 25 }
{ "_id" : ObjectId("58f29a694117d1b7af126dcc"), "studentNo" : 3, "firstName" : "Rizve", "lastName" : "Amin", "age" : 23 }
{ "_id" : ObjectId("58f29a694117d1b7af126dcd"), "studentNo" : 4, "firstName" : "Jabed", "lastName" : "Bangali", "age" : 25 }
{ "_id" : ObjectId("58f29a694117d1b7af126dce"), "studentNo" : 5, "firstName" : "Gm", "lastName" : "Anik", "age" : 23 }

Ähnliche mySql Abfrage des obigen Befehls.

SELECT * FROM students WHERE firstName = "Prosen" OR age >= 23

Und ODER-Anfragen

db.students.find({
        firstName : "Prosen",
        $or : [
            {age : 23},
            {age : 25}
        ]
});

{ "_id" : ObjectId("58f29a694117d1b7af126dca"), "studentNo" : 1, "firstName" : "Prosen", "lastName" : "Ghosh", "age" : 25 }

Ähnliche mySql-Abfrage des obigen Befehls.

SELECT * FROM students WHERE firstName = "Prosen" AND age = 23 OR age = 25;

IN-Abfragen Diese Abfragen können die mehrfache Verwendung von ODER-Abfragen verbessern

db.students.find(lastName:{$in:["Ghosh", "Amin"]})

{ "_id" : ObjectId("58f29a694117d1b7af126dca"), "studentNo" : 1, "firstName" : "Prosen", "lastName" : "Ghosh", "age" : 25 }
{ "_id" : ObjectId("58f29a694117d1b7af126dcb"), "studentNo" : 2, "firstName" : "Rajib", "lastName" : "Ghosh", "age" : 25 }
{ "_id" : ObjectId("58f29a694117d1b7af126dcc"), "studentNo" : 3, "firstName" : "Rizve", "lastName" : "Amin", "age" : 23 }

Ähnliche mySql-Abfrage zum obigen Befehl

select * from students where lastName in ('Ghosh', 'Amin')

find () -Methode mit Projektion

Die grundlegende Syntax der find() Methode mit Projektion lautet wie folgt

> db.COLLECTION_NAME.find({},{KEY:1});

Wenn Sie alle Dokumente ohne das Feld Alter anzeigen möchten, lautet der Befehl wie folgt

db.people.find({},{age : 0});

Wenn Sie alle Dokumente im Feld Alter anzeigen möchten, lautet der Befehl wie folgt

Find () -Methode mit Projektion

In MongoDB bedeutet Projektion, nur die erforderlichen Daten auszuwählen, anstatt die gesamten Daten eines Dokuments auszuwählen.

Die grundlegende Syntax der find() Methode mit Projektion lautet wie folgt

> db.COLLECTION_NAME.find({},{KEY:1});

Wenn Sie alle Dokumente ohne das Feld Alter anzeigen möchten, lautet der Befehl wie folgt

> db.people.find({},{age:0});

Wenn Sie nur das Alter-Feld anzeigen möchten, lautet der Befehl wie folgt

> db.people.find({},{age:1});

Hinweis: _id Feld _id wird bei der Ausführung der find() -Methode immer angezeigt. Wenn Sie dieses Feld nicht möchten, müssen Sie es auf 0 .

> db.people.find({},{name:1,_id:0});

Hinweis: Mit 1 wird das Feld angezeigt, mit 0 werden die Felder ausgeblendet.

beschränken, überspringen, sortieren und zählen Sie die Ergebnisse der find () -Methode

Ähnlich wie bei Aggregationsmethoden haben Sie auch bei find () die Möglichkeit, die Ergebnisse einzuschränken, zu überspringen, zu sortieren und zu zählen. Nehmen wir an, wir haben folgende Sammlung:

db.test.insertMany([
    {name:"Any", age:"21", status:"busy"}, 
    {name:"Tony", age:"25", status:"busy"}, 
    {name:"Bobby", age:"28", status:"online"}, 
    {name:"Sonny", age:"28", status:"away"}, 
    {name:"Cher", age:"20", status:"online"}
])

Um die Sammlung aufzulisten:

db.test.find({})

Wird zurückkehren:

{ "_id" : ObjectId("592516d7fbd5b591f53237b0"), "name" : "Any", "age" : "21", "status" : "busy" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b1"), "name" : "Tony", "age" : "25", "status" : "busy" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b2"), "name" : "Bobby", "age" : "28", "status" : "online" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b3"), "name" : "Sonny", "age" : "28", "status" : "away" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b4"), "name" : "Cher", "age" : "20", "status" : "online" }

Erste 3 Dokumente überspringen:

db.test.find({}).skip(3)

Wird zurückkehren:

{ "_id" : ObjectId("592516d7fbd5b591f53237b3"), "name" : "Sonny", "age" : "28", "status" : "away" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b4"), "name" : "Cher", "age" : "20", "status" : "online" }

Absteigend nach Feldnamen sortieren:

db.test.find({}).sort({ "name" : -1})

Wird zurückkehren:

{ "_id" : ObjectId("592516d7fbd5b591f53237b1"), "name" : "Tony", "age" : "25", "status" : "busy" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b3"), "name" : "Sonny", "age" : "28", "status" : "away" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b4"), "name" : "Cher", "age" : "20", "status" : "online" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b2"), "name" : "Bobby", "age" : "28", "status" : "online" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b0"), "name" : "Any", "age" : "21", "status" : "busy" }

Wenn Sie aufsteigend sortieren möchten, ersetzen Sie -1 durch 1

Um die Ergebnisse zu zählen:

db.test.find({}).count()

Wird zurückkehren:

5

Auch Kombinationen dieser Methoden sind zulässig. Erhalten Sie zum Beispiel 2 Dokumente aus einer absteigend sortierten Sammlung, wobei die erste 1 übersprungen wird:

db.test.find({}).sort({ "name" : -1}).skip(1).limit(2)

Wird zurückkehren:

{ "_id" : ObjectId("592516d7fbd5b591f53237b3"), "name" : "Sonny", "age" : "28", "status" : "away" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b4"), "name" : "Cher", "age" : "20", "status" : "online" }


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow