同Mysql对比
SQL MongoDB database database table collection row document column field index index table join not support Primary Key Primary Key
MongoDB
基本概念
NoSQL数据库
特殊数据库:
1. admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
2. local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
3. config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
mongod: 服务器
mongo: 客户端
collection: 集合,相当于MYSQL中的table
capped collecitons: 固定大小的collection,有队列过期的设置
db.createCollection("mycoll", {capped:true, size:100000})
元数据:数据库的信息是存储在集合中
space 描述 dbname.system.namespaces 所有名字空间 dbname.system.indexes 所有索引 dbname.system.profile 概要信息 dbname.system.users 显示用户 dbname.local.sources 复制对slave的服务器信息和状态
show dbs
db
use db
数据库操作
常用操作
1. 数据库
1. 创建 use db_name:
2. 添加数据collection: db.runoob.insert({"name":"rudi"})
3. 删除 db.dropDatabase()
4. 删除collection db.collection.drop()
2. 插入文档 db.collection_name.insert({document})
3. 查询
1. 查看当前db中的collections:show collections;
2. 查询文档 db.collection.find(query(查询条件), projection(指定返回的键))
3. 查询返回一个文档 db.collection.findOne()
4. 保存
1. 局部更新 db.col.update({"age":12},{$set:{"age":20}}},upsert, multi)
2. 文档替换 db.col.save({...})
5. 删除文档 db.col.remove({},justOne(如果为true或者1时,只删除一条))
6. $type操作符,跟mongodb类型表有关
7. Limt与Skip
1. db.COLLECTION_NAME.find().limit(NUMBER)
2. db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
8. 排序 db.COLLECTION_NAME.find().sort({KEY:1}),1升序,-1降序
operation Eg. equal db.col.find({“name”:”rudi”}).pretty() less than db.col.find({“age”:{$lt:20}}).pretty() less than or equest db.col.find({“age”:{$lte:20}}).pretty() large than db.col.find({“age”:{$lt:20}}).pretty() not equal db.col.find({“age”:{$ne:20}}).pretty() and db.col.find({“age”:15, “name”:”rudi”).pretty() or db.col.find($or:[{“age”:15},{“name”:”rudi”}).pretty()
只更新第一条记录:
db.col.update ( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK" } } );
全部更新:
db.col.update ( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK" } },false ,true );
只添加第一条:
db.col.update ( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK" } },true ,false );
全部添加加进去:
db.col.update ( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK" } },true ,true );
全部更新:
db.col.update ( { "count" : { $gt : 15 } } , { $inc : { "count" : 1 } },false ,true );
只更新第一条记录:
db.col.update ( { "count" : { $gt : 10 } } , { $inc : { "count" : 1 } },false ,false );
进阶操作
1. 索引: db.COLLECTION_NAME.ensureIndex({KEY:1}),1升序,-1降序
2. 数据聚合:类似Excel中的公式
3. 监控:
1. mongostat (命令行执行)
2. mongotop(命令行执行)
T.B.D.