Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
update komutu, bir koleksiyondaki mevcut belgeleri değiştirmek için kullanılır. Bu update komut, filtreleme ölçütlerine göre bir veya birden çok belgeyi güncelleştirmek için kullanılabilir. Alanların değerleri değiştirilebilir, yeni alanlar ve değerler eklenebilir ve mevcut alanlar kaldırılabilir.
Örnekler
StoreData veritabanındaki stores koleksiyonundan bu örnek belgeyi göz önünde bulundurun.
{
"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4",
"name": "First Up Consultants | Beverage Shop - Satterfieldmouth",
"location": {
"lat": -89.2384,
"lon": -46.4012
},
"staff": {
"totalStaff": {
"fullTime": 8,
"partTime": 20
}
},
"sales": {
"totalSales": 75670,
"salesByCategory": [
{
"categoryName": "Wine Accessories",
"totalSales": 34440
},
{
"categoryName": "Bitters",
"totalSales": 39496
},
{
"categoryName": "Rum",
"totalSales": 1734
}
]
},
"promotionEvents": [
{
"eventName": "Unbeatable Bargain Bash",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 6,
"Day": 23
},
"endDate": {
"Year": 2024,
"Month": 7,
"Day": 2
}
},
"discounts": [
{
"categoryName": "Whiskey",
"discountPercentage": 7
},
{
"categoryName": "Bitters",
"discountPercentage": 15
},
{
"categoryName": "Brandy",
"discountPercentage": 8
},
{
"categoryName": "Sports Drinks",
"discountPercentage": 22
},
{
"categoryName": "Vodka",
"discountPercentage": 19
}
]
},
{
"eventName": "Steal of a Deal Days",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 9,
"Day": 21
},
"endDate": {
"Year": 2024,
"Month": 9,
"Day": 29
}
},
"discounts": [
{
"categoryName": "Organic Wine",
"discountPercentage": 19
},
{
"categoryName": "White Wine",
"discountPercentage": 20
},
{
"categoryName": "Sparkling Wine",
"discountPercentage": 19
},
{
"categoryName": "Whiskey",
"discountPercentage": 17
},
{
"categoryName": "Vodka",
"discountPercentage": 23
}
]
}
]
}
Örnek 1 - $inc işlecini kullanarak tek bir belgeyi güncelleştirme
TotalSales değerini 10 artırıp belirtilen _id sahip bir belge için tam zamanlı personel sayısını azaltma.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$inc": {"sales.salesByCategory.0.totalSales": 10, "staff.totalStaff.fullTime": -6}})
Örnek 2 - $min işlecini kullanarak tek bir belgeyi güncelleştirme
Alanın geçerli değeri 10'dan büyükse, belirtilen _id belgenin totalStaff sayısını 10 olarak güncelleştirin.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$min": {"staff.totalStaff.fullTime": 10}})
Örnek 3 - $max işlecini kullanarak tek bir belgeyi güncelleştirme
Alanın geçerli değeri 14'ten küçükse, belirtilen _id belgenin totalStaff sayısını 14 olarak güncelleştirin.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$max": {"staff.totalStaff.fullTime": 14}})
Örnek 4 - $mul işlecini kullanarak tek bir belgeyi güncelleştirme
Belirtilen _id değerine sahip belge için yarı zamanlı çalışanların sayısını 2'ye katlar.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$mul": {"staff.totalStaff.partTime": 2}})
Örnek 5 - $rename işlecini kullanarak tek bir belgeyi güncelleştirme
totalSales ve totalStaff alanlarını sırasıyla fullSales ve staffCounts olarak yeniden adlandırın.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$rename": {"sales.totalSales": "sales.fullSales", "staff.totalStaff": "staff.staffCounts"}})
Örnek 6 - $set işlecini kullanarak tek bir belgeyi güncelleştirme
Belirtilen _id değeriyle belge için fullSales alanını 3700 olarak ayarlayın.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$set": {"sales.fullSales": 3700}})
Örnek 7 - $unset işlecini kullanarak tek bir belgeyi güncelleştirme
Belirtilen _id değeriyle belgedeki konum nesnesinden lon alanını kaldırın.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$unset": {"location.lon": ""}})
Örnek 8 - Birden çok belgeyi güncelleştirme
İlk tanıtım etkinliğinin Şubat ayında başladığı tüm belgeleri Mart ayında başlayacak şekilde güncelleştirin.
db.stores.updateMany({"promotionEvents.0.promotionalDates.startDate.Month": 2}, {"$inc": {"promotionEvents.0.promotionalDates.startDate.Month": 1}})
Örnek 9 - Tek bir belge ekleme
Sorgu filtresinde belirtilen belge koleksiyonda yoksa yeni bir belge oluşturmak için upsert bayrağını true olarak ayarlayın.
db.stores.updateOne({"_id": "NonExistentDocId"}, {"$set": {"name": "Lakeshore Retail", "sales.totalSales": 0}}, {"upsert": true})