【Linux】MongoDB简单介绍及常用命令分享(linux操作mongodb)

MongoDB介绍

MongoDB:介于关系数据库和非关系数据库之间,C++语言编写,分布式文件存储,可扩展的高性能数据存储,是一种NoSQL的数据库。

NoSQL:非关系型的数据库,Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,可用于超大规模数据的存储。

数据存储为一个Document,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象,字段值可以包含其他文档、数组及文档数组,如下图所示:

{

name:"zhagsan",

age:"25",

groups:["news","sports"]

}

特点

面向文档存储,操作简单容易;

设置索引,实现快速排序;

本地或者网络创建数据镜像,优化MongoDB扩展性;

增加负载,分片处理;

丰富的查询表达式,查询指令使用JSON形式标记,可轻易查询文档中内嵌的对象及数组;

支持服务端脚本执行;

支持多种编程语言,如Ruby、Python、Java、C++、Php、C#等;

安装简单;

不支持表连接;

不支持事务操作;

文件存储格式为 BSON;

下载地址

官网下载地址https://www.mongodb.com/download-center/community

概念解析

database:数据库

collection:数据库集合,对应关系型数据库二维表。

document:数据文档,对应关系型数据库二维表中的每一行。

field:数据字段,对应关系型数据二维表中的每一列。

index:索引

primary key:主键,自动将_id设置为主键

{

"_id":"5dce64603ec49017b30d076a",

"nickname":"zhangsan",

"city":"Shanghai",

"age":"25",

"email":"[email protected]"

}

连接Database

MongoDB版本:3.4.7

ServerAddress serverAddress = new ServerAddress("127.0.0.1", 27017);
List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createScramSha1Credential("db_username", "db_database", "db_passwod".toCharArray());
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
MongoClient mongoClient = new MongoClient(addrs, credentials);
MongoDatabase mongoDatabase = mongoClient.getDatabase("db_database");

查询Collection

MongoCollection<Document> collection = mongoDatabase.getCollection("collection");
//去掉游标时间,数据量太大时,易造成时间超时
FindIterable<Document> findIterable = collection.find().noCursorTimeout(true);
MongoCursor<Document> mongoCursor = findIterable.iterator();
while(mongoCursor.hasNext()){
Document doc = mongoCursor.next();
String value = (String)doc.get("field");
}

常用命令

mongo备份

mongodump备份数据库

./mongodump -h 127.0.0.1:27017 -u db_username -p db_password -d db_database -o /usr/local/backup

mongoexport备份csv collection

./mongoexport -d db_database --host 127.0.0.1:27017 --authenticationDatabase=db_database -u db_username -p db_password -c collection -o /usr/local/backup/collection.csv

mongoexport备份json collection

./mongoexport -d db_database --host 127.0.0.1:27017 --authenticationDatabase=db_database -u db_username -p db_password -c collection -o /usr/local/backup/collection.json

mongo恢复备份数据

mongorestore恢复备份的数据库

./mongorestore -h 127.0.0.1:27017 -u db_username -p db_password -d db_database /usr/local/backup

mongoimport恢复备份的json collection

./mongoimport --db db_database --host 127.0.0.1:27017 --authenticationDatabase=db_database -u db_username -p db_password --file /usr/local/backup/collection.json

mongorestore恢复备份的bson collection

./mongorestore -d db_database--host 127.0.0.1:27017 --authenticationDatabase=db_database-u db_username -p db_password /usr/local/backup/collection.bson

mongo查重

查重某一个field

db.collection.aggregate([{ $group: {"_id": { "field" : "$field"},count:{$sum:1}}}, {$match:{count:{$gte:2}}}],{ allowDiskUse: true });

索引

mongo建立唯一索引

db.collection.ensureIndex({field:1},{unique:true},{backgroud:true})

mongo建立索引

db.collection.ensureIndex({field:1})

db.collection.createIndex ({field:1})

mongo查看索引

db.collection.getIndexes()

mongo删除索引

db.collection.dropIndex({"field":1})

过期时间

mongo设置过期时间

db.collection.createIndex({'time': 1}, {expireAfterSeconds: 3600})

ok,以上就是【Linux】MongoDB简单介绍及常用命令分享,看完记得转发、点赞和收藏。想了解更多内容,请关注本小编,如果有错误,欢迎批评指正,感谢支持。

(云渺书斋)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注