MongoDB Introduction, Installation and MongoDB Schema Design: How to Think Non-Relational
来源:互联网 发布:java架构师书籍推荐 编辑:程序博客网 时间:2024/05/03 13:43
Key Points for Basic context of MongoDB(stoped at 30 minis or so):
The official site is here: http://www.mongodb.org/ and there is a web-based command line interface for trying the basic operations;
After download and unzip the gz file, then mkdir /mongodb/data;
To start the mongo db: ./bin/mongod --dbpath /mongodb/data
to connect the mongdb ./mongo which will connect to the localhost and test database by default;
To save a demo JSON data like this : db.mycol.save{"name":"sch", "interests" : "mongdb" };
To retrive the demo data like this : db.mycol.find() which no need to do any joins bewteeen tables;
To create a B-Tree index on interests: db.mycol.ensureIndex({interests:1}) then db.mycol.find({Interest: Mongodb});
To explain the query plan: db.mycol.find({interest: Mongodb}).explain() ;
To created sparse index: db.shapes.ensureIndex({radius:1}, {sparse:true}) which will tell database not to create index for the data that does not have this field which is quite space saving and performance efficent
The 'dot' operator: db.books.ensureIndex({comments.author:1}) //create index on mnested documents
db.books.find({comments.author: "sche"})
db.books.ensureIndex({comments.votes: 1})
db.books.ensureIndex({commnets.votes: {$gt: 50}}) //find all books iwht more than 50 votes
In the above DB shell cmd. mycol does not need predefined in the MongoDB and it will automatically created by database;
There is a web site for mongodb which is: localhost:28017;
To create an index on the "tags" array which it is called multi-key indexes;
Key Points for MongoDB Scheme
Ways to model data: normalize or denormalize
Comparision of RDBM and MONGODB RDBMSMonggoDBTable CollectionRowsJSON documentIndexIndexJoinEmbedding and LinkingWorking with documents
Evolving a schema
Queries and indexed
Rich documents
compared with RDBMS(by contrast): No need to access data from different locations and memory and tables,
No need to worry about the wrong query plan which could impact the performance heavily
MongoDB is a JSON database and MongoDB shell is a javascript driven interacive interface;what is the BSON?
How can we manipulate the data?
Dynamic Queries
Secondary Indexes
Atomimc Updates
Map Reduce
No joins for MongoDb because it will make scalability horizontal impossible instead of only scalaer up(not out)
Query operators:
$ne, $in, $nin, $mod,$all
$size, $exists, $tyep, $lte
Conditional operators:
$set, $inc, $push, $pop
$pushAll, $pullAll
Extending the Schema:
new_comment = {
author: "schen",
data: new Date(),
text: "great book",
votes: 5
}
db.books.update(
{ text:"moon"},
{ '$push' : {comments:new_comment}, //for array purpose
'$inc' : {comments_count: 1}
}
)
One to Many Model
Embeded array/array keys
-$slice operator to return subset of array
-some queries hard
Embeded tree
-single docuement
-natural
-hard to query
normalized(2 collections)
-most flexible
-more queries
Referenceing vs. Embedding
-Embed when the 'many' objects always appear with their parents
-Refence when you need more felxibility
Many to Many Model
- MongoDB Introduction, Installation and MongoDB Schema Design: How to Think Non-Relational
- how to design MongoDB schema
- MongoDB Schema Design
- [MongoDB--Unbuntu installation]---How to Install MongoDB on Ubuntu 16.04
- introduction to mongoDB(介绍 mongodb)
- How to cleanup ASM installation (RAC and Non-RAC)
- How to Design Programs: An Introduction to Programming and Computing
- MongoDB Schema Design(MongoDB模式设计)
- MongoDB Schema Design的Slide
- How to cleanup ASM installation (RAC and Non-RAC) [ID 311350.1]
- MongoDB Installation
- 【MongoDB】Installation of MongoDB
- MONGODB introduction
- 绝好的MongoDB学习资料之三. Schema Design
- M101P: MongoDB for Developers - Chapter 3: Schema Design
- Introduction to XML Schema
- Introduction to Schema Objects
- 怎么安装mongodb数据库 how to install mongodb on win7
- httpclient4 取得cookie信息并保存
- Python学习心得(1)
- log4cplus中自定义的使用配置文件输出日志的类
- 2.2 《硬啃设计模式》 第4章 如何管理全局信息?- 单件模式(Singleton Pattern)
- 传中国联通年内启动4G建网
- MongoDB Introduction, Installation and MongoDB Schema Design: How to Think Non-Relational
- AMD新一代APU即将问世 年底前向OEM供货
- AndroidManifest.xml常用设置
- spoj 42
- HBase技术介绍
- VMware ESXi and vSphere client
- 日本松下为改善业绩拟出售三洋电机总部大楼
- micro-DisplayPort for 4K+接口将于2014年登陆超薄手机和笔记本
- 错误集锦-数组过大时,会导致堆栈溢出的错误