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.
De $meta projectieoperator wordt gebruikt om metagegevens op te nemen in de resultaten van een query. Het is handig voor het opnemen van metagegevens, zoals zoekscores voor tekst of andere berekende waarden in de uitvoerdocumenten.
Syntaxis
De syntaxis voor het gebruik van de $meta projectieoperator is als volgt:
db.collection.find({
$text: {
$search: < string >
}
}, {
field: {
$meta: < metaDataKeyword >
}
})
Parameterwaarden
| Kenmerk | Description |
|---|---|
field |
De naam van het veld in de uitvoerdocumenten waarin de metagegevens worden opgenomen. |
metaDataKeyword |
Het type metagegevens dat algemene trefwoorden bevat, zoals textScore voor zoekscores voor tekst. |
Voorbeelden
Bekijk dit voorbeelddocument uit de winkelverzameling.
{
"_id": "34f462fe-5085-4a77-a3de-53f4117466bd",
"name": "Wide World Importers",
"location": {
"lat": -63.5435,
"lon": 77.7226
},
"staff": {
"totalStaff": {
"fullTime": 16,
"partTime": 16
}
},
"sales": {
"totalSales": 41481,
"salesByCategory": [
{
"categoryName": "Holiday Tableware",
"totalSales": 41481
}
]
},
"promotionEvents": [
{
"eventName": "Crazy Deal Days",
"promotionalDates": {
"startDate": {
"Year": 2023,
"Month": 11,
"Day": 13
},
"endDate": {
"Year": 2023,
"Month": 11,
"Day": 22
}
},
"discounts": [
{
"categoryName": "Gift Boxes",
"discountPercentage": 9
},
{
"categoryName": "Holiday Tableware",
"discountPercentage": 24
}
]
},
{
"eventName": "Incredible Savings Showcase",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 5,
"Day": 11
},
"endDate": {
"Year": 2024,
"Month": 5,
"Day": 20
}
},
"discounts": [
{
"categoryName": "Ribbons",
"discountPercentage": 15
},
{
"categoryName": "Gift Bags",
"discountPercentage": 25
}
]
}
],
"tag": [
"#ShopLocal",
"#FashionStore",
"#SeasonalSale",
"#FreeShipping",
"#MembershipDeals"
]
}
Voorbeeld 1: Inclusief zoekscores voor tekst
De zoekscore voor tekst opnemen in de resultaten van een zoekquery voor tekst.
db.stores.createIndex({ "name": "text"});
db.stores.find(
{ $text: { $search: "Equipment Furniture Finds" } },
{ _id: 1, name: 1, score: { $meta: "textScore" } }
).sort({ score: { $meta: "textScore" } }).limit(2)
De eerste twee resultaten die door deze query worden geretourneerd, zijn:
[
{
_id: 'cf1448e9-5493-49b5-95da-ab8a105b5240',
name: 'Tailwind Traders | Camera Market - Wolfmouth',
score: 4
},
{
_id: '4fd389af-4693-4c02-93cf-0d80ae8ace07',
name: 'Wide World Importers | Camera Collection - South Cordelia',
score: 4
}
]
Beperking
- Als er geen index wordt gebruikt, retourneert de { $meta: "indexKey" } niets.
Verwante inhoud
- Bekijk de opties voor het migreren van MongoDB naar Azure DocumentDB.
- Lees meer over functiecompatibiliteit met MongoDB.