Arangodb'de ek iç nesneler bulunan bir nesneye sahibim, geçerli kullanım durumum, yalnızca öğelerden birini güncelleştirmem gerekiyor.İç nesneyi arangodb içinde güncelleştirin
Mağaza Nesne
{
"status": "Active",
"physicalCode": "99999",
"postalCode": "999999",
"tradingCurrency": "USD",
"taxRate": "14",
"priceVatInclusive": "No",
"type": "eCommerce",
"name": "John and Sons inc",
"description": "John and Sons inc",
"createdDate": "2015-05-25T11:04:14+0200",
"modifiedDate": "2015-05-25T11:04:14+0200",
"physicalAddress": "Corner moon and space 9 station",
"postalAddress": "PO Box 44757553",
"physicalCountry": "Mars Sector 9",
"postalCountry": "Mars Sector 9",
"createdBy": "john.doe",
"modifiedBy": "john.doe",
"users": [
{
"id": "577458630580",
"username": "john.doe"
}
],
"products": [
{
"sellingPrice": "95.00",
"inStock": "10",
"name": "School Shirt Green",
"code": "SKITO2939999995",
"warehouseId": "723468998682"
},
{
"sellingPrice": "95.00",
"inStock": "5",
"name": "School Shirt Red",
"code": "SKITO245454949495",
"warehouseId": "723468998682"
},
{
"sellingPrice": "95.00",
"inStock": "10",
"discount": "5%",
"name": "School Shirt Blue",
"code": "SKITO293949495",
"warehouseId": "723468998682"
}
]
}
Ben ürünlerin bir tanesinin güncelleme mağaza ürün stok gibi stok değerini
{
"sellingPrice": "95.00",
"inStock": "10",
"discount": "5%",
"name": "School Shirt Blue",
"code": "SKITO293949495",
"warehouseId": "723468998682"
}
değiştirmek istiyorum
az 1 nerede mağaza id = x, bu yönde bir şey
FOR store IN stores
FILTER store._key == "837108415472"
FOR product IN store.products
FILTER product.code == "SKITO293949495"
UPDATE product WITH { inStock: (product.inStock - 1) } IN store.products
ab muhtemelen, store_products koleksiyonundaki ürünü ayrı bir doküman olarak saklamak mantıklıdır. Belge boyutunu küçültmek için en iyi yaklaşım olan NOSQL'e inanıyorum.
Doğru olduğunu düşünüyorum. Ürünlerin mağazalardan ayrı olarak depolanması mantıklı olacaktır. Bu, bireysel ürünlerin (ve mağazaların) kolayca ve verimli bir şekilde güncellenmesini sağlayacaktır. Mağaza ve tüm ürünleri, yukarıdaki gibi tek bir dokümanda yer aldıysa, tüm ürün güncellemeleri için tüm mağaza nesnesinin kaydedilmesi gerekir; bu da çok verimsiz olur. Bunun dışında, 'inStock' değerini dizeleri kullanmak yerine bir sayı olarak saklamak mantıklı olabilir. Aynı fiyatlar için de geçerlidir. – stj