● 安装
● 启动
1、创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)和日志文件(mongo.log文件)
2、创建配置文件mongo.conf,文件内容如下:
#数据库路径 dbpath=d:MongoDBServer3.4data #日志输出文件路径 logpath=d:MongoDBServer3.4logsmongo.log #错误日志采用追加模式 logappend=true #启用日志文件,默认启用 journal=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false quiet=true #端口号 默认为27017 port=27017
3、通过执行bin/mongod.exe,使用--install选项来安装服务,使用--config选项来指定之前创建的配置文件。 cmd进 入d:MongoDBServer3.4in
注意是mongod.exe而不是mongo.exe
mongod.exe ‐‐config "d:MongoDBServer3.4mongo.conf" ‐‐install
4、启动mongodb服务,浏览器中输入http://127.0.0.1:27017看到如下界面即说明启动成功
● 连接
a.使用mongodb自带客户端连接(mongo.exe)
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?
options]]
例子:
mongodb://localhost 连接本地数据库27017端口 mongodb://root:itcast@localhost 使用用户名root密码为itcast连接本地数据库27017端口 mongodb://localhost,localhost:27018,localhost:27019,连接三台主从服务器,端口为27017、27018、27019
b.使用studio3T客户端连接
c.用java程序连接
1)添加依赖
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo‐java‐driver</artifactId> <version>3.4.3</version> </dependency>
2)java代码
@Test public void testConnection(){ //创建mongodb 客户端 MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); //或者采用连接字符串 //MongoClientURI connectionString = new MongoClientURI("mongodb://root:root@localhost:27017"); //MongoClient mongoClient = new MongoClient(connectionString); //连接数据库 MongoDatabase database = mongoClient.getDatabase("test"); // 连接collection MongoCollection<Document> collection = database.getCollection("student"); //查询第一个文档 Document myDoc = collection.find().first(); //得到文件内容 json串 String json = myDoc.toJson(); System.out.println(json); }
● 操作数据库
1、查询数据库
show dbs #查询全部数据库
db #显示当前数据库
2、创建数据库(有DATABASE_NAME数据库则切换到此数据库,没有则创建)
use DATABASE_NAME
3、删除数据库
use test02
db.dropDatabase()
4、创建集合
db.createCollection(name, options)
name: 新创建的集合名称
options: 创建参数
5、删除集合
db.collection.drop() 例子: db.student.drop() #删除student集合
6、插入文档
db.student.insert({"name":"程序员","age":10})
7、更新文档
如果不加修改器$set,这条文档除了name字段其它字段都不见了
db.student.update({"name":"程序员"},{$set:{"name":"北京程序员"}})
8、删除文档
1)删除所有文档
db.student.remove({})
2)删除符合条件的文档
db.student.remove({"name":"程序员"})
9、查询文档
db.collection.find(query, projection)
query:查询条件,可不填
projection:投影查询key,可不填
如下只返回name和age:
db.student.find({"name":"程序员"},{name:1,age:1,_id:0})
查询某集合下文档数量:
db.student.count()
db.student.count({"id":"001"})
限定查询条数:
db.spit.find().limit(3)
10、创建用户。数据库用户角色:read、readWrite;
use admin db.createUser( { user:"root", pwd:"root", roles:[{role:"readWrite",db:"admin"}] } )
11、查询用户
show users
12、删除用户
db.dropUser("root1")
13、修改密码
use admin db.changeUserPassword("root","123")
14、docker运行mongodb并开启认证
docker run -di --name=mongo -p 27017:27017 mongo --auth
运行后进入该docker容器创建root用户
15、高级操作
● 大于 小于 不等于
db.集合名称.find({ "field" : { $gt: value }}) // 大于: field > value db.集合名称.find({ "field" : { $lt: value }}) // 小于: field < value db.集合名称.find({ "field" : { $gte: value }}) // 大于等于: field >= value db.集合名称.find({ "field" : { $lte: value }}) // 小于等于: field <= value db.集合名称.find({ "field" : { $ne: value }}) // 不等于: field != value
● 包含与不包含
//查询吐槽集合中userid字段包含1013和1014的文档 db.spit.find({userid:{$in:["1013","1014"]}}) //查询吐槽集合中userid字段不包含1013和1014的文档 db.spit.find({userid:{$nin:["1013","1014"]}})
● 条件连接
//查询吐槽集合中visits大于等于1000 并且小于2000的文档 db.spit.find({$and:[ {visits:{$gte:1000}} ,{visits:{$lt:2000} }]}) //查询吐槽集合中userid为1013,或者浏览量小于2000的文档记录 db.spit.find({$or:[ {userid:"1013"} ,{visits:{$lt:2000} }]})
● 使某列值在原有值的基础上进行增加或减少,用$inc运算符来实现
db.spit.update({_id:"2"},{$inc:{visits:NumberInt(1)}} )