MongoDB使用

● 安装

● 启动

1、创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)和日志文件(mongo.log文件)

2、创建配置文件mongo.conf,文件内容如下:

#数据库路径 dbpath=d:\MongoDB\Server\3.4\data

#日志输出文件路径 logpath=d:\MongoDB\Server\3.4\logs\mongo.log

#错误日志采用追加模式 logappend=true

#启用日志文件,默认启用 journal=true

#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false quiet=true

#端口号 默认为27017 port=27017

3、通过执行bin/mongod.exe,使用--install选项来安装服务,使用--config选项来指定之前创建的配置文件。 cmd进 入d:\MongoDB\Server\3.4\bin

注意是mongod.exe而不是mongo.exe

mongod.exe ‐‐config "d:\MongoDB\Server\3.4\mongo.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用户

idea的mongo插件认证需要选择这个:

 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)}} )

 

posted on 2019-02-26 13:44  bofeng  阅读(297)  评论(0编辑  收藏  举报