Zoeken…


Invoering

Eenvoudige voorbeelden van zoekopdrachten

Vind()

haal alle documenten in een verzameling op

db.collection.find({});

documenten in een verzameling ophalen met een voorwaarde (vergelijkbaar met WHERE in MYSQL)

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

documenten ophalen in een verzameling met behulp van Booleaanse voorwaarden (Queryoperators)

//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 } } )

meer booleaanse bewerkingen en voorbeelden zijn hier te vinden

OPMERKING: find () blijft de collectie doorzoeken, zelfs als een documentovereenkomst is gevonden, daarom is het inefficiënt bij gebruik in een grote collectie, maar door uw gegevens zorgvuldig te modelleren en / of indexen te gebruiken, kunt u de efficiëntie van zoeken vergroten ( )

Vind een()

db.collection.findOne({});

de queryfunctionaliteit is vergelijkbaar met find (), maar hiermee wordt de uitvoering beëindigd op het moment dat een document wordt gevonden dat aan zijn voorwaarde voldoet. Als het wordt gebruikt met een leeg object, wordt het eerste document opgehaald en geretourneerd. findOne () mongodb api-documentatie

Query Document - AND, OR en IN voorwaarden gebruiken

Alle documenten uit de 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
}

Soortgelijke mySql Query van de bovenstaande opdracht.

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

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

Soortgelijke mySql Query van de bovenstaande opdracht.

SELECT * FROM students WHERE firstName = "Prosen";

EN vragen

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

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

Soortgelijke mySql Query van de bovenstaande opdracht.

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

Of vragen

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 }

Soortgelijke mySql Query van de bovenstaande opdracht.

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

En OF vragen

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

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

Soortgelijke mySql Query van de bovenstaande opdracht.

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

IN-query's Deze query's kunnen meervoudig gebruik van OF-query's verbeteren

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 }

Soortgelijke mySql-zoekopdracht als bovenstaande opdracht

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

find () methode met Projection

De basissyntaxis van de methode find() met projectie is als volgt

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

Als u alle documenten zonder het leeftijdsveld wilt weergeven, is de opdracht als volgt

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

Als u alle documenten het leeftijdsveld wilt tonen, is de opdracht als volgt

Find () methode met Projection

In MongoDB betekent projectie alleen het selecteren van de benodigde gegevens in plaats van het selecteren van alle gegevens van een document.

De basissyntaxis van de methode find() met projectie is als volgt

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

Als u alle documenten zonder het leeftijdsveld wilt weergeven, is de opdracht als volgt

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

Als u alleen het leeftijdsveld wilt weergeven, is de opdracht als volgt

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

Opmerking: het veld _id wordt altijd weergegeven tijdens het uitvoeren van de methode find() . Als u dit veld niet wilt, moet u het instellen als 0 .

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

Opmerking: 1 wordt gebruikt om het veld te tonen, terwijl 0 wordt gebruikt om de velden te verbergen.

de resultaten van de methode find () beperken, overslaan, sorteren en tellen

Vergelijkbaar met aggregatiemethoden, ook met de methode find (), kunt u de resultaten beperken, overslaan, sorteren en tellen. Laten we zeggen dat we de volgende verzameling hebben:

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"}
])

Om de verzameling te vermelden:

db.test.find({})

Zal terugkomen:

{ "_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" }

De eerste 3 documenten overslaan:

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

Zal terugkomen:

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

Aflopend sorteren op veldnaam:

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

Zal terugkomen:

{ "_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" }

Als je oplopend wilt sorteren, vervang je -1 door 1

Om de resultaten te tellen:

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

Zal terugkomen:

5

Ook combinaties van deze methoden zijn toegestaan. Haal bijvoorbeeld 2 documenten uit aflopende gesorteerde verzameling waarbij de eerste 1 wordt overgeslagen:

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

Zal terugkomen:

{ "_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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow