MongoDB łączy warunki zapytania za pomocą operatorów logicznych — $and, $or, $not, $nor — plus niejawnego AND wielu pól w filtrze. Pozwalają one wyrażić złożoną logikę zapytań, aby znaleźć dokładnie potrzebne dokumenty.
MongoDB łączy warunki zapytania za pomocą operatorów logicznych — $and, $or, $not, $nor — plus niejawnego AND wielu pól w filtrze. Pozwalają one wyrażić złożoną logikę zapytań, aby znaleźć dokładnie potrzebne dokumenty.
// multiple fields in one filter = AND (all must match)
db.users.find({ active: true, age: { $gt: 18 } });
// → active = true AND age > 18 (no explicit $and needed)
Najprostszy przypadek: wymienienie wielu warunków w filtrze niejawnie łączy je za pomocą AND — wszystkie muszą się zgadzać.
// $or takes an array of conditions; a document matches if ANY is true
db.users.find({
$or: [
{ age: { $lt: 18 } },
{ age: { $gt: 65 } }
]
});
// → age < 18 OR age > 65
// usually implicit, but $and is needed when combining conditions on the SAME field
db.products.find({
$and: [
{ price: { $gt: 100 } },
{ price: { $lt: 500 } }
]
});
// (often you can write { price: { $gt: 100, $lt: 500 } } instead — cleaner)
// $and is also useful to combine $or groups:
db.users.find({
$and: [
{ $or: [{ role: "admin" }, { role: "editor" }] },
{ active: true }
]
});
db.products.find({ price: { $not: { $gt: 100 } } }); // NOT (price > 100) → price <= 100 or missing
db.users.find({ $nor: [{ active: true }, { premium: true }] }); // NEITHER condition true
// real queries combine logical + comparison operators
db.orders.find({
status: "shipped", // implicit AND
$or: [
{ total: { $gt: 1000 } },
{ priority: "high" }
]
});
// → status = shipped AND (total > 1000 OR priority = high)
Operatory logiczne są niezbędne do wyrażania złożonych warunków zapytań w MongoDB — rzeczywiste zapytania często wymagają więcej niż jeden warunek (łączenie wielu kryteriów za pomocą logiki AND/OR), dlatego ich zrozumienie jest fundamentalną wiedzą codzienną do efektywnego filtrowania danych.
Znajomość niejawnego AND wielu pól filtrów (najprostszy, najczęstszy przypadek — wymienienie warunków, które wszystkie muszą się zgadzać), $or (dopasowanie któregokolwiek z kilku warunków — częsta potrzeba alternatyw), $and (jawny AND, potrzebny do łączenia warunków na tym samym polu lub grupowania klauzul $or) oraz $not/$nor (negacja) obejmuje logiczne elementy budulcowe do wyrażania wymogów zapytań.
Rozumienie, jak łączyć operatory logiczne i porównania (budowanie zapytań takich jak "status wysłany AND (suma > 1000 OR priorytet wysoki)") jest konieczne dla realistycznych, wielowarunkowych zapytań, które wymagają aplikacje.
Ponieważ filtrowanie danych za pomocą połączonych warunków jest częstą potrzebą (znalezienie dokumentów spełniających złożone kryteria), a operatory logiczne MongoDB (niejawny AND, $or, $and, $not/$nor) to sposób wyrażenia tej logiki — w połączeniu z operatorami porównania dla rzeczywistych warunków — zrozumienie operatorów logicznych jest niezbędną, często stosowaną wiedzą MongoDB do pisania efektywnych zapytań, równoważną opanowaniu AND/OR/NOT w klauzulach SQL WHERE i niezbędną do znalezienia dokładnie potrzebnych dokumentów ze złożonymi warunkami, które wymagają rzeczywiste aplikacje.