MongoDB安装及配置
mongo安装
见图片
mongo配置
正常执行步骤
第一步
创建几个文件夹具体如下:在根目录的data文件夹下创建数据库路径(db目录)、日志路径(log目录)
第二步:配置环境变量
在cmd中方便访问mongo
因为每次我们启动MongoDB服务的时候
都需要在cmd中切换到MongoDB所在路径,然后执行 net start mongodb 命令来开启服务。
为了解决这个问题我们可以将MongoDB配置到系统环境变量中。
下次在开机的时候可以直接打开cmd或者以管理员身份打开输入 net start mongodb 命令,无需切换到MongoDB所在路径进行启动。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ToC4TnC-1599923697715)(img\05.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0POsWMbd-1599923697719)(img\06.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SW4dT2tE-1599923697723)(img\07.png)]
第三步
安装路径下创建配置文件mongo.config,文件内容如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HDpzgdJI-1599923697726)(img\03.png)]
#数据库路径
dbpath = D:\MongoDB\data
#日志输出文件路径
logpath = D:\MongoDB\log\mongodb.log
#错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
logappend = true
#启用日志文件,默认启用
journal = true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet = true
#端口号 默认为27017
port = 27017
dbpath=D:\mongodb\data\db
logpath=D:\mongodb\data\log\mongodb.log
logappend=true
journal=true
quiet=true
port=27017
第四步
打开cmd进入bin目录(管理员模式开启,为了避免错误发生)
cd /d d:\mongoDB\bin
mongod -dbpath D:\mongodb\data\db
mongodb默认连接端口27017,如果出现如图的情况,在浏览器访问:http://localhost:27017
成功之后关闭此命令行,即关闭mongodb服务
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ab2yKwJR-1599923697729)(img\08.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NWjlQMhI-1599923697731)(img\04.png)]
第五步
在bin目录下执行
mongod -dbpath “D:\mongodb\data\db” -logpath “D:\mongodb\data\log\mongodb.log” -install - serviceName "MongoDB"
(把db的路径和log的路径装配到MongoDB Service服务中)
第六步
在bin目录下执行
mongod –config “D:\Mongo\mongo.config” –install –serviceName “MongoDB”
(把配置文件装配到MongoDB Service服务中)
第七步:连接
执行 net start mongodb
错误
如果命令出现重名现象,即自动生成了响应时间戳的log文件
则通过 sc delete MongoDB
删除服务并删除所有log文件,然后重新从第五步执行一遍
错误 5
发生系统错误 5
拒绝访问
是因为没有使用管理员模式打开cmd
错误 1058
出现1058 错误 是因为配置文件出错,如遇到1058错误
- 删除服务 sc delete MongoDB
- 检查配置文件,是否有多余的空格,空白,路径是否正确,单词拼写是否正确,然后保存
- 重新执行以上步骤,将相应的文件配置到mongodb服务中
其它错误
同样重新配置服务,因为有时候服务默认配置路径错误,要删除后再配置,具体路径可以右键计算机,选择管理,点击服务,找到mongodb右键属性即可。安装的所有错误基本都是路径错误,按照本机情况重新检查一遍即可。
重新配置的具体操作界面如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jqof1ieE-1599923697733)(img\09.png)]
连接
在bin目录下执行 net start mongodb(cd /d d:\mongoDB\bin)
连接成功后执行mongo
执行help查看命令
创建数据库
以下实例我们创建了数据库 runoob:
> use runoob
switched to db runoob
> db
runoob
>
如果你想查看所有数据库,可以使用 show dbs 命令:
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
>
可以看到,我们刚创建的数据库 runoob 并不在数据库的列表中, 要显示它,我们需要向 runoob 数据库插入一些数据。
> db.runoob.insert({"name":"小明"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
runoob 0.000GB
MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。
MongoDB 删除数据库
MongoDB 删除数据库的语法格式如下:
db.dropDatabase()
删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名。
首先,查看所有数据库:
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
runoob 0.000GB
接下来我们切换到数据库 runoob:
> use runoob
switched to db runoob
>
执行删除命令:
> db.dropDatabase()
{ "dropped" : "runoob", "ok" : 1 }
最后,我们再通过 show dbs 命令数据库是否删除成功:
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
以下实例删除了 runoob 数据库中的集合 site:
> use runoob
switched to db runoob
> db.createCollection("runoob") # 先创建集合,类似数据库中的表
> show tables
runoob
> db.runoob.drop()
true
> show tables
>
在 test 数据库中创建 runoob 集合:
> use test
switched to db test
> db.createCollection("runoob")
{ "ok" : 1 }
>
如果要查看已有集合,可以使用 show collections 或 show tables 命令:
> show collections
runoob
system.indexes
下面是带有几个关键参数的 createCollection() 的用法:(了解)
创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。
> db.createCollection("mycol", { capped : true, autoIndexId : true, size :
6142800, max : 10000 } )
{ "ok" : 1 }
>
在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。
> db.mycol2.insert({"name" : "小明"})
> show collections
mycol2
...
删除集合
在数据库 mydb 中,我们可以先通过 show collections 命令查看已存在的集合:
>use mydb
switched to db mydb
>show collections
mycol
mycol2
system.indexes
runoob
>
接着删除集合 mycol2 :
>db.mycol2.drop()
true
>
通过 show collections 再次查看数据库 mydb 中的集合:
>show collections
mycol
system.indexes
runoob
>
从结果中可以看出 mycol2 集合已被删除。
IDEA连接mongodb(查询和插入)
import com.mongodb.*;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import java.util.ArrayList;
import java.util.List;
public class mongoConnectionTest {
public static void main(String[] args) {
//这里的 "localhost" 表示连接的服务器地址,27017 为端口号。
// 可以省略 端口号 不写,系统将默认端口号为 27017
//MongoClient mongoClient = new MongoClient("localhost");
MongoClient mongoClient = new MongoClient("127.0.0.1");
//连接到数据库: "test" 表示数据库名
// 若指定的数据库不存在,mongoDB将会在你第一次插入文档时创建数据库。
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
//获取集合
MongoCollection<Document> collection = mongoDatabase.getCollection("test");
/*
mongoDatabase.createCollection("javatest");
System.out.println("集合创建成功");
Document document = new Document("title", "MongoDB").
append("description", "database").
append("likes", 100).
append("by", "Fly");
List<Document> documents = new ArrayList<Document>();
documents.add(document);
collection.insertMany(documents);
System.out.println("文档插入成功");
*/
//查找集合中的所有文档
FindIterable findIterable = collection.find();
MongoCursor cursor = findIterable.iterator();
//输出数据
while(cursor.hasNext()){
System.out.println(cursor.next());
}
mongoClient.close();
}
}