own hardware • Decide which cluster con fi guration to run • Manage upgrades and backups yourself • Community Edition is free • Enterprise Edition for advanced features
common across programming languages • Client object to interact with a deployment • Database object to interact with a database • Collection object to interact with a collection • Driver speci fi cation is public
$documents, array $options = []); public function insertOne($document, array $options = []); public function find($filter = [], array $options = []); public function findOne($filter = [], array $options = []); public function updateMany($filter, $update, array $options = []); public function updateOne($filter, $update, array $options = []); public function deleteMany($filter, array $options = []); public function deleteOne($filter, array $options = []); }
maximum size of 16 MB • Documents support 255 levels of nesting • Embedding same data multiple times is an anti-pattern • Ever-growing arrays are problematic
}, "title": "What do you think about MongoDB?", "num_replies": 14289 } "post": { "author": { "_id": { "$oid": "648ffe160a8daeb5e50506a2" }, "name": "alcaeus", "image": "..." }, "body": "I love it, what about you?" },
}, "title": "What do you think about MongoDB?", "post": { ... }, "num_replies": 14289, } "last_reply": { "_id": { "$oid": "648ffe160a8daeb5e50506ce" }, "author": { "_id": { "$oid": "648ffe160a8daeb5e50506a5" }, "name": "youdontknowme", "image": "..." }, "body": "I have a lot to learn about it!" }
"648ffe160a8daeb5e50506ce" }, "author": { "_id": { "$oid": "648ffe160a8daeb5e50506a5" }, "name": "youdontknowme", "image": "..." }, "body": "I still have a lot to learn about it!", "topic": { "_id": { "$oid": "648ffe160a8daeb5e50506a3" }, "title": "What do you think about MongoDB?" } }
Field Level Encryption • You have the key, we don’t • Data is encrypted in the driver • Schema to de fi ne encrypted fi elds and keys • Equality queries on deterministically encrypted fi elds only