4. MEMCACHED
Cons
Pros
• Складність
• Least
пошуку O(1)
Recently Used cache
• Задається
час зберігання
• Енергозалежна
пам’ять
• Відсутній
механізм
кластеризації
• Обмежений
функціонал
Usecase: Дані з частими запитами (ключ сесії, базова інфа
користувача)
9. PROS/CONS
Pros:
1.
2.
3.
4.
5.
6.
7.
8.
Документо-орієнтованість – документ відображає об'єкт, що значно спрощує програмування
системи;
Механізм вкладеності документів забезпечує певну можливість позбавлення від “важких” joinів;
Потокова вставка;
Хороша масштабованість, завдяки механізму “Віртуального Шардингу”;
Map-Reduce фреймворк;
Відсутність обмежень на структуру документа, що значно прискорює розробку;
JSON;
JS;
Aggregation pipeline
Cons:
1.
2.
3.
4.
Ускладнює аналітику;
Збитковість даних та потенційні проблеми спричинені їх вкладеністю;
Відсутність транзакцій;
Ускладнення підтримки з часом через відсутність схеми.
14. UPSERT (MERGE)
Проапдейтити інфу про Джона Ленона, а якщо його
немає в базі, то insert.
> db.musicians.update({"name":"John","second name":"Lennon"},
{$set:{"born":"9 October 1940","age":"40"}},{"upsert":true})
>
> db.musicians.findOne({name:"John"})
{
"_id" : ObjectId("51d6597a58ddf14f9052a7db"),
"age" : "40",
"born" : "9 October 1940",
"name" : "John",
"second name" : "Lennon"
}
>
15. GEOSPATIAL INDEXES
GeoJson: { <location field> : { type : "<GeoJSON type>" ,
coordinates : <coordinates>
} }
db.points.ensureIndex( { <location field> : "2dsphere" } )
Points within a Circle Defined on a Sphere
db.<collection>.find( { <location field> :
{ $geoWithin :
{ $centerSphere :
[ [ <x>, <y> ] , <radius in rad (10/3959)> ] }
} } )
GeoJSON Objects Bounded by a Polygon
db.<collection>.find( { <location field> :
{ $geoWithin :
{ $geometry :
{ type : "Polygon" ,
coordinates : [ <coordinates> ]
} } } } )
Proximity to a GeoJSON Point
db.<collection>.find( { <location field> :
{ $near :
{ $geometry :
{ type : "Point" ,
coordinates : [ <longitude> , <latitude> ] } ,
$maxDistance : <distance in meters>
} } } )