Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
TOEPASBAAR OP:
MongoDB vCore
De $and
operator retourneert true
wanneer alle expressies worden geëvalueerd true
. Hiermee wordt een logische AND-bewerking uitgevoerd op een matrix met expressies. Als een expressie wordt geëvalueerd, retourneert false
$and
de volledige false
expressie. Deze operator is handig voor het combineren van meerdere voorwaarden waaraan moet worden voldaan.
Syntaxis
De syntaxis voor de $and
operator is als volgt:
{
$and: [ <expression1>, <expression2>, ... ]
}
Parameterwaarden
Beschrijving | |
---|---|
<expression1>, <expression2>, ... |
Twee of meer expressies die moeten worden geëvalueerd. Alle expressies moeten evalueren om true de $and bewerking te retourneren true . |
Voorbeeld
Voorbeeld 1: Winkels met hoge verkoop en voldoende personeel zoeken
In het voorbeeld vindt u winkels met zowel de totale verkoop groter dan 100.000 als meer dan 30 personeelsleden.
db.stores.aggregate([
{
$project: {
name: 1,
totalSales: "$sales.totalSales",
totalStaff: {
$add: ["$staff.employeeCount.fullTime", "$staff.employeeCount.partTime"]
},
meetsHighPerformanceCriteria: {
$and: [
{ $gt: ["$sales.totalSales", 100000] },
{ $gt: [{ $add: ["$staff.employeeCount.fullTime", "$staff.employeeCount.partTime"] }, 30] }
]
}
}
},
{ $limit: 2 }
])
De query retourneert winkels die voldoen aan zowel hoge verkoop- als personeelscriteria.
{
"_id": "905d1939-e03a-413e-a9c4-221f74055aac",
"name": "Trey Research | Home Office Depot - Lake Freeda",
"totalStaff": 31,
"meetsHighPerformanceCriteria": false
},
{
"_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
"name": "Lakeshore Retail | Holiday Supply Hub - Marvinfort",
"totalStaff": 27,
"meetsHighPerformanceCriteria": false
}
Voorbeeld 2: Datums van promotieevenementen valideren
In het voorbeeld wordt gecontroleerd of promotie-gebeurtenissen zowel geldige begin- als einddatums hebben (alle datumonderdelen zijn positieve getallen).
db.stores.aggregate([
{ $match: {"_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74"} },
{
$project: {
name: 1,
promotionEvents: {
$map: {
input: "$promotionEvents",
as: "event",
in: {
eventName: "$$event.eventName",
hasValidDates: {
$and: [
{ $gt: ["$$event.promotionalDates.startDate.Year", 0] },
{ $gt: ["$$event.promotionalDates.startDate.Month", 0] },
{ $gt: ["$$event.promotionalDates.startDate.Day", 0] },
{ $gt: ["$$event.promotionalDates.endDate.Year", 0] },
{ $gt: ["$$event.promotionalDates.endDate.Month", 0] },
{ $gt: ["$$event.promotionalDates.endDate.Day", 0] }
]
}
}
}
}
}
}
])
De query valideert dat alle datumonderdelen positieve getallen zijn voor zowel begin- als einddatums.
{
"_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74",
"name": "Proseware, Inc. | Home Entertainment Hub - East Linwoodbury",
"promotionEvents": [
{ "eventName": "Massive Markdown Mania", "hasValidDates": true },
{ "eventName": "Fantastic Deal Days", "hasValidDates": true },
{ "eventName": "Discount Delight Days", "hasValidDates": true },
{ "eventName": "Super Sale Spectacular", "hasValidDates": true },
{ "eventName": "Grand Deal Days", "hasValidDates": true },
{ "eventName": "Major Bargain Bash", "hasValidDates": true }
]
}
Verwante inhoud
- Bekijk de opties voor migreren van MongoDB naar Azure Cosmos DB voor MongoDB (vCore)
- Meer informatie over functiecompatibiliteit met MongoDB