查找本机已经部署数据节点:sdblist -l -r data
进入其中一个数据节点:cd /opt/sequoiadb/database/data/11820/
查看目录内容:ls -trl
创建company_domain逻辑域:db.createDomain("company_domain",["group1","group2","group3"],{AutoSplit:true})
创建company集合空间:db.createCS("company",{Domain:"company_domain"})
创建employee集合:db.company.createCL("employee", { "ShardingKey": { "_id": 1 }, "ShardingType": "hash", "ReplSize": -1, "Compressed": true, "CompressionType": "lzw", "AutoSplit": true, "EnsureShardingIndex": false } );
删除集合:db.company.dropCL("employee");
删除集合空间:db.dropCS("company")
删除逻辑域:db.dropDomain("company_domain");
向集合中插入数据:
db.company.employee.insert( { empno: 1, ename: "Jacky", age: 28, department: 'Sales Department' } );
db.company.employee.insert( { empno: 2, ename: "Abe", age: 36, department: 'Sales Department' } );
db.company.employee.insert( { empno: 3, ename: "Alice", age: 23, department: 'Personnel Department ' } );
db.company.employee.insert( { empno: 4, ename: "Jane", age: 25, department: 'Personnel Department ' } );
查询集合中数据age大于20,小于30的:db.company.employee.find( { "age": { "$gt": 20, "$lt": 30 } } );
更新操作将 empno 为 1 的记录 age 更改为 29:db.company.employee.update( { "$set": { "age": 29 } }, { "empno": 1 } );
删除集合 employee 中的数据,将 empno 为 2 的记录删除:db.company.employee.remove( { "empno": 2 } );
统计集合employee不同部门的平均年龄db.company.employee.aggregate( { "$group": { "_id": "$department", "avg_age": { "$avg": "$age" }, "department": "$department" } } );
方法说明
写入测试数据:
for(var i = 0; i < 1000; i++) {
db.company.employee.insert( { ename: "TEST", age: 20 } );
}
目录发生变化:
上传非结构化文件:
使用ls -trl
查看目录发现变化:
在集合 employee 的 ename 字段上创建索引:db.company.employee.createIndex("idx_ename", { ename: 1 }, false);
查看创建的索引:db.company.employee.listIndexes();
显示集合employee查询语句的执行计划(explain select * from table
)db.company.employee.find( { "ename": "Georgi" } ).explain ();
开启事务:db.transBegin()
写入数据:db.company.employee.insert({empno:1,ename:"Jacky",age:28});
提交事务:db.transCommit();
查询写入数据:db.company.employee.find({empno:1});
开始事务:db.transBegin();
写入数据:db.company.employee.insert({empno:2,ename:"Alice",age:23});
查询写入数据:db.company.employee.find({empno:2});
回滚事务:db.transRollback();
查询集群当前节点是否开启事务以及隔离级别:
db.snapshot(SDB_SNAP_CONFIGS, {}, { NodeName: "", transisolation: "", transactionon: "" } );
数据库配置
设置事务的隔离级别为RC(读已提交):db.updateConf({transisolation:1})