返回顶部
首页 > 资讯 > 服务器 >搭建 MongoDB 服务器,MongoDB 基本使用,数据导入导出
  • 567
分享到

搭建 MongoDB 服务器,MongoDB 基本使用,数据导入导出

2024-04-02 19:04:59 567人浏览 薄情痞子
摘要

mongoDB 1.1软件介绍 • 介于关系数据库和非关系数据库之间的产品 – 一个基于分布式文件存储的数据库。 – 由 c++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 – M

mongoDB

1.1软件介绍

• 介于关系数据库和非关系数据库之间的产品

– 一个基于分布式文件存储的数据库。

– 由 c++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

– MonGoDB 将数据存储为一个文档,数据结构由键值(key=>value) 对组成。

– MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

1.2软件特点

– 安装简单

– 面向文档存储,操作比较简单容易

– 支持丰富的查询表达

– 可以设置任何属性的索引

– 支持主流编程语言 RUBY|python|JAVA|PHP|C++

– 支持副本集,分片

搭建 MongoDB 服务器

2.1 裝包

[root@50 ~]# tar -xf mongodb-linux-x86_64-rhel70-3.6.3.tgz

[root@50 ~]# ls mongodb-linux-x86_64-rhel70-3.6.3

[root@50 bin]# mkdir /usr/local/mongodb

[root@50 ~]# mv mongodb-linux-x86_64-rhel70-3.6.3/bin /usr/local/mongodb/bin

[root@50 ~]# cd /usr/local/mongodb/bin

[root@50 mongodb]# mkdir etc log #etc配置文件 log 日志文件

[root@50 mongodb]# mkdir -p data/db

2.2创建配置文件

[root@50 bin]# ./mongod --help 查看幫助

[root@50 etc]# cd /usr/local/mongodb/etc/

[root@50 etc]# vim mongodb.conf

logpath=/usr/local/mongodb/log/mongodb.log

logappend=true # 追加的方式记录日志信息

dbpath=/usr/local/mongodb/data/db # 数据库目录

fork=true # 守护进程方式运行

bind_ip=192.168.4.50

port=27050

2.3啓動服務

[root@50 mongodb]# ln -s /usr/local/mongodb/bin/* /sbin/

[root@50 ~]# mongod -f /usr/local/mongodb/etc/mongodb.conf #開啓服務

[root@50 mongodb]# mongod --shutdown -f /usr/local/mongodb/etc/mongodb.conf #關閉服務

2.3.1查看进程

[root@50 log]# ps -C mongod

PID TTY TIME CMD

2432 ? 00:00:00 mongod

2.3.2 查看端口

[root@50 log]# netstat -antulp | grep :27017

tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 2432/mongod

2.3.3查看是否有日誌文件

[root@50 log]# ls

Mongodb.log

2.4連接服務

[root@50 log]# mongo

MongoDB shell version v3.6.3

connecting to: mongodb://127.0.0.1:27017

MongoDB server version: 3.6.3

..............

2018-07-07T10:49:21.013+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'

2018-07-07T10:49:21.013+0800 I CONTROL [initandlisten]

show dbs // 显示已有的库

admin 0.000GB

config 0.000GB

local 0.000GB

db // 顯示當前庫

test

exit # 断开连接

Bye

MongoDB 基本使用

3.1 指定服務IP地址

[root@50 log]# killall -9 mongod

[root@50 mongodb]# vim etc/mongodb.conf

bind_ip=192.168.4.50 更改ip

port=27050 更改端口

~

[root@50 mongodb]# mongod -f /usr/local/mongodb/etc/mongodb.conf

[root@50 mongodb]# netstat -antulp | grep :27050

tcp 0 0 192.168.4.50:27050 0.0.0.0:* LISTEN 2794/mongod

[root@50 mongodb]# mongo -host 192.168.4.50 -port 27050

3.2 創建別名方便啓動關閉

[root@50 ~]# vim /root/.bashrc

alias mstart='mongod -f /usr/local/mongodb/etc/mongodb.conf'

alias mstop='mongod --shutdown -f /usr/local/mongodb/etc/mongodb.conf '

3.3 常用管理命令

– show dbs 查看已有的库

– db显示当前所在的库

– use 库名 切换库,若库不存在的话 自动延时创建库

– show collections 或 show tables 查看库下已有的集合

– db.dropDatabase() 删除当前所在的库

3.4 数据库取名規則

数据库名可以是满足以下条件的任意 UTF-8 字符串

– 不能是空字符串( "") 。

– 不得含有 ' ' (空格 ) 、 . 、 $ 、 / 、 \ 和 \0 ( 空字符 )

– 应全部小写。

– 最多 64 字节。

3.5 集合管理命令:查看 创建 删除

– show collections 或 show tables # 查看集合

– db. 集合名 .drop() #刪除集合

– db. 集合名 .save({'',''}) ## 创建集合,集合不存

#在时,创建并添加文档

db.user.save({'name':'bob','age':'21'})

WriteResult({ "nInserted" : 1 })

use studb

switched to db studb

db

studb

show tables

db.c1.save({name:"bob",age:19,sex:"boy"})

WriteResult({ "nInserted" : 1 })

db.c1.save({name:"harry",age:20,sex:"girl"})

WriteResult({ "nInserted" : 1 })

db.c1.find

show tables

c1

文档基本管理

文档 : 类似于 Mysql 表里的记录

4.1 文档基本管理

文档管理命令: 查看 统计 添加 删除

– db. 集合名 .find()

 > db.c1.find()

– db. 集合名 .count()

 > db.c1.count()

 2

– db. 集合名 .insert({“name”:”jim”})

 > db.c1.insert({"name":"jim","age":11,"sex":"boy"})

 WriteResult({ "nInserted" : 1 })

– db. 集合名 .find({ 条件 })

 > db.c1.find({"age":11})

  { "_id" : ObjectId("5b405853f250badccca5adb8"), "name" : "jim", "age" : 11, "sex" :   "boy" }

– db. 集合名 .findOne() # 返回一条文档

  > db.c1.findOne()

{

"_id" : ObjectId("5b403a1af250badccca5adb6"),

"name" : "bob",

"age" : 19,

"sex" : "boy"

}

– db. 集合名 .remove({}) # 删除所有文档

> db.c1.remove({})

– db. 集合名 .remove({ 条件 }) # 删除与条件匹配的所有文档

db.c1.remove({"name":"bob"})

WriteResult({ "nRemoved" : 1 })

基本数据类型

5.1字符 string/ 布尔 bool/ 空 null

字符串 string

– UTF-8 字符串都可以表示为字符串类型的数据

– {name:” 张三” } 或 { school:“tarena”}

• 布尔 bool

– 布尔类型有两个值 true 和 false , {x:true}

db.c1.save({name:"tom",age:19,sigle:true})

• 空 null

– 用于表示空值或者不存在的字段, {x:null}

db.c1.save({name:"lucy",age:18,sigle:false,pay:null})

5.2 数值 / 数组 array

5.2.1数值

– shell 默认使用 64 为浮点型数值。 {x : 3.14} 或 {x : 3} 。

> db.c1.save({name:"yaya",x:3.99})

– NumberInt ( 4 字节整数) {x:NumberInt(3)}

db.c1.save({"name":"zhangsan",x:NumberInt(3)})

– NumberLong ( 8 字节整数) {x:NumberLong(3)}

db.c1.save({name:"yaya",x:NumberLong(3)})

db.c1.find()

{ "_id" : ObjectId("5b403a4bf250badccca5adb7"), "name" : "harry", "age" : 20, "sex" : "girl" }

{ "_id" : ObjectId("5b405853f250badccca5adb8"), "name" : "jim", "age" : 11, "sex" : "boy" }

{ "_id" : ObjectId("5b405e31f250badccca5adb9"), "name" : "zhangsan", "x" : 3 }

{ "_id" : ObjectId("5b405ec1f250badccca5adba"), "name" : "tom", "age" : 19, "sigle" : true }

{ "_id" : ObjectId("5b405f36f250badccca5adbb"), "name" : "lucy", "age" : 18, "sigle" : false, "pay" : null }

{ "_id" : ObjectId("5b405f9bf250badccca5adbc"), "name" : "yaya", "x" : 3.99 }

{ "_id" : ObjectId("5b405fdef250badccca5adbd"), "name" : "yaya", "x" : NumberLong(3) }

5.2.2 数组 array

– 数据列表或数据集可以表示为数组

– {x : [“a“ ,“ b”,”c”]}

5.3 代码 / 日期 / 对象

代码

– 查询和文档中可以包括任何 javascript 代码

– {x: function( ){/ 代码 /}}

• 日期

– 日期被存储为自新纪元依赖经过的毫秒数,不存储时区

– {x:new Date( )}

db.c1.save({name:"liwei",birthday:new Date()})

• 对象

– 对象 id 是一个 12 字节的字符串,是文档的唯一标识

– {x: ObjectId() }

db.c1.save({name:"xiaodong",stuid:ObjectId()})

5.4内嵌 / 正则表达式

5.4.1 内嵌

– 文档可以嵌套其他文档,被嵌套的文档作为值来处理

– {tarena: {address:“Beijing”,tel:“888888”,perso

n:”hanshaoyun”

– }}

db.c1.save({

... ywzd:{p:"dmy",jg:69,v:2},

... ngsfc:{p:"birdg",jg:89,v:4}

... })

5.4.2 正则表达式

– 查询时,使用正则表达式作为限定条件

– {x:/ 正则表达式 /}

db.c1.save({

... name:"hanmm",match:/^a/

... })

数据导入导出

6.1数据导出

语法格式 1

mongoexport [--host IP 地址 --port 端口 ]

d 库名 -c 集合名 -f 字段名 1, 字段名 2

--type=csv > 目录名 / 文件名 .csv

[root@50 mnt]# mongoexport --host 192.168.4.50 --port 27050 -d studb -c c1 -f _id,name --type=csv > /mnt/c1.csv

2018-07-07T16:31:22.526+0800 connected to: 192.168.4.50:27050

2018-07-07T16:31:22.527+0800 exported 7 records

• 语法格式 2

– #mongoexport --host IP 地址 --port 端口

  • 库名 -c 集合名 -q ‘{ 条件 }’ -f 字段名 1 ,字段名 2

--type=csv > 目录名 / 文件名 .csv

*注意:导出为 csv 格式必须使用 -f 指定字段名列表 !!!

语法格式 3

mongoexport [ --host IP 地址 --port 端口 ]

-d 库名 -c 集合名 [ -q ‘{ 条件 }’ –f 字段列表

]

--type=json

目录名 / 文件名 .json

[root@50 mnt]# mongoexport --host 192.168.4.50 --port 27050 -d studb -c c1 --type=json > /mnt/c1.json

2018-07-07T15:50:46.202+0800 connected to: 192.168.4.50:27050

2018-07-07T15:50:46.203+0800 exported 7 records

6.2 数据导入

语法格式 1

– #mongoimport –host IP 地址 – port 端口

-d 库名 – c 集合名

--type=json

目录名 / 文件名 .json

[root@50 mnt]# mongoimport --host 192.168.4.50 --port 27050 -d bbsdb -c t1 --type=json /mnt/c1.json

2018-07-07T16:20:39.777+0800 connected to: 192.168.4.50:27050

2018-07-07T16:20:40.115+0800 imported 7 documents

[root@50 mnt]# mongoimport --host 192.168.4.50 --port 27050 -d bbsdb -c t2 -f _id,name --type=csv /mnt/c1.csv

2018-07-07T16:43:37.797+0800 connected to: 192.168.4.50:27050

2018-07-07T16:43:37.953+0800 imported 8 documents

语法格式 2

– #mongoimport –host IP 地址 – port 端口

-d 库名 – c 集合名

--type=csv --headerline [--drop] 目录名 / 文件名 .csv

注意:导入数据时库和集合不存在时,会创建库和集合后导入数据,反之以追加的方式导入数据到集合里,使用— drop 选项可以删除原有数据后导入新数据 --headerline 忽略标题

[root@50 mnt]# mongoimport --host 192.168.4.50 --port 27050 -d studb -c c1 --headerline --drop --type=csv /mnt/c1.csv

2018-07-07T17:00:41.677+0800 connected to: 192.168.4.50:27050

2018-07-07T17:00:41.678+0800 dropping: studb.c1

2018-07-07T17:00:41.967+0800 imported 7 documents

把系統用戶信息導入mongodb

新建一個文件

db.c3.save({name:"yaya",pass:"x",uid:"123",gid:"123",comment:"teacher",homeaddr:"/home/bin",shell:"/bin/bash"})

然後導出

[root@50 mnt]# mongoexport --host 192.168.4.50 --port 27050 -d bbsdb -c c3 -f name,pass,uid,gid,comment,homeaddr,shell --type=csv >/mnt/c3.csv

2018-07-07T17:34:29.526+0800 connected to: 192.168.4.50:27050

2018-07-07T17:34:29.527+0800 exported 1 record

[root@50 mnt]# cp /etc/passwd .

[root@50 mnt]# ls

c1.csv c1.json c3.csv passwd

[root@50 mnt]# sed -i '' c3.csv

[root@50 mnt]# sed -i '$r passwd' c3.csv

[root@50 mnt]# vim c3.csv

[root@50 mnt]# sed -i 's/:/,/g' c3.csv

[root@50 mnt]# vim c3.csv

把 c3.csv d導入數據庫

[root@50 mnt]# mongoimport --host 192.168.4.50 --port 27050 \

-d studb -c c3 --headerline --drop --type=csv /mnt/c3.csv

2018-07-07T17:45:47.963+0800 connected to: 192.168.4.50:27050

2018-07-07T17:45:47.964+0800 dropping: studb.c3

2018-07-07T17:45:48.121+0800 imported 43 documents

[root@50 ~]# mongo -host 192.168.4.50 -port 27050 #登錄數據庫查看

db.c3.find()

{ "_id" : ObjectId("5b408bcb7f8c3Df38b1fca2d"), "name" : "yaya", "pass" : "x", "uid" : 123, "gid" : 123, "comment" : "teacher", "homeaddr" : "/home/bin", "shell" : "/bin/bash" }

{ "_id" : ObjectId("5b408bcb7f8c3df38b1fca2e"), "name" : "root", "pass" : "x", "uid" : 0, "gid" : 0, "comment" : "root", "homeaddr" : "/root", "shell" : "/bin/bash" }

{ "_id" : ObjectId("5b408bcb7f8c3df38b1fca2f"), "name" : "bin", "pass" : "x", "uid" : 1, "gid" : 1, "comment" : "bin", "homeaddr" : "/bin", "shell" : "/sbin/nologin" }

{ "_id" : ObjectId("5b408bcb7f8c3df38b1fca30"), "name" : "daemon", "pass" : "x", "uid" : 2, "gid" : 2, "comment" : "daemon", "homeaddr" : "/sbin", "shell" : "/sbin/nologin" }

............................

数据备份恢复

7.1数据备份

备份数据所有库到当前目录下的 dump 目录下

[root@50 mnt]# mongodump --host 192.168.4.50 --port 27050 -d bbsdb

2018-07-07T17:56:11.403+0800 writing bbsdb.t2 to

2018-07-07T17:56:11.403+0800 writing bbsdb.t1 to

2018-07-07T17:56:11.403+0800 writing bbsdb.c3 to

2018-07-07T17:56:11.405+0800 done dumping bbsdb.t2 (8 documents)

# mongodump [ --host ip 地址 --port 端口

备份时指定备份的库和备份目录

# mongodump [ --host ip 地址 --port 端口 ] -d 数据库名

-c 集合名 -o 目录(目录无需事先创建 备份时指定即可!!!)

• 查看 bson 文件内容

#bsondump ./dump/bbs/t1.bson

7.2数据恢复

语法格式

– mongorestore --host IP 地址 --port 端口 -d 数

据库名 [ -c 集合名 ] 备份目录名

[root@50 mnt]# mongorestore --host 192.168.4.50 --port 27050 -d db1 -c t1 /mnt/mogobak/bbsdb/t2.bson

2018-07-07T18:04:47.914+0800 checking for collection data in /mnt/mogobak/bbsdb/t2.bson

2018-07-07T18:04:47.914+0800 reading metadata for db1.t1 from /mnt/mogobak/bbsdb/t2.metadata.json

--结束END--

本文标题: 搭建 MongoDB 服务器,MongoDB 基本使用,数据导入导出

本文链接: https://lsjlt.com/news/43502.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 搭建 MongoDB 服务器,MongoDB 基本使用,数据导入导出
    MongoDB 1.1软件介绍 • 介于关系数据库和非关系数据库之间的产品 – 一个基于分布式文件存储的数据库。 – 由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 – M...
    99+
    2024-04-02
  • MongoDB数据导入导出(8)
    导出数据 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的,所以,都有如下通用选项。 利用mongoexport -h host 主机 -port 端口 -d 知名使用的库 -c 指明要导出的集合 -o 指明要导出...
    99+
    2014-12-22
    MongoDB数据导入导出(8)
  • 教你使用MongoDB导入导出备份数据
    目录导出数据mongodumpmongoexport恢复mongorestoremongoimport需要提前安装MongoDB-database-tools参考:Centos离线安装mongodb-database-t...
    99+
    2024-04-02
  • 【未完】mongodb安装+副本集搭建+数据导入
    参考文档:1-centos6.5下MongoDB2.6.4安装配置记录http://blog.csdn.net/ligaofeng/article/details/39374333 2-mongodb中的副...
    99+
    2024-04-02
  • mongodb如何导入或导出数据库
    MongoDB提供了多种方法来导入或导出数据库。 使用mongodump和mongorestore命令行工具: mongodu...
    99+
    2023-10-27
    mongodb 数据库
  • Mongodb 数据导入导出,备份及恢复
    搭建测试环境时,为了保证线上数据不被破坏,或避免引起误操作,数据库要建立本机数据库。将线上数据做成备份,然后恢复到本地测试环境下。主要是mongoexport, mongoimport, mongodump...
    99+
    2024-04-02
  • 在MongoDB中如何导出和导入数据
    要在MongoDB中导出数据,可以使用mongoexport命令。下面是一个示例: mongoexport --db <数据库...
    99+
    2024-04-20
    MongoDB
  • mongodb数据表导入导出的方法是什么
    MongoDB提供了命令行工具mongodump和mongorestore来进行数据表的导入和导出。具体方法如下:1. 导出数据表:...
    99+
    2023-09-12
    mongodb
  • 如何使用MongoDB实现数据的批量导入、导出功能
    如何使用MongoDB实现数据的批量导入、导出功能MongoDB是一种NoSQL数据库,作为一种非关系型数据库,其在数据存储和查询上有着很大的灵活性和性能优势。对于需要批量导入和导出数据的应用场景,MongoDB也提供了相应的工具和接口。本...
    99+
    2023-10-22
    MongoDB 导出 批量导入
  • mysql基本导入导出数据命令
    这篇文章主要讲解了“mysql基本导入导出数据命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql基本导入导出数据命令”吧! 1.导出整个   ...
    99+
    2024-04-02
  • 批量备份还原导入与导出MongoDB数据方式
    前文链接传送门 mongo数据库的安装与配置 Navicat 建立数据库连接 新建数据库 导入JavaScript文件入数据库 mongodb数据备份和还原主要分为二种,一...
    99+
    2024-04-02
  • Oracle数据导入导出基本操作示例
    Oracle数据导入导出基本操作示例数据导出a.将数据库orcl完全导出,用户名user 密码password 导出到D:\dc.dmp中     exp user/passw...
    99+
    2024-04-02
  • 怎么用mongodb导入数据库文件
    要使用MongoDB导入数据库文件,可以按照以下步骤进行操作:1. 确保MongoDB已经正确安装并正在运行。2. 打开命令行工具,...
    99+
    2023-09-01
    mongodb 数据库
  • PHPOffice/PhpSpreadsheet的导入导出操作基本使用
    phpspreadsheet 引入 由于PHPExcel早就停止更新维护,所以适用phpspreadsheet。不知道如何通过composer拉取项目包的同学,可以查看Composer学习一文。引入方...
    99+
    2023-09-08
    php
  • ETL数据导入导出工具HData使用
    注:近期因朋友的请求协助了解Hdata工具的使用,抽空进行了摸索,特整理此文;该ETL数据交换工具开发者已经有三、四年没有更新维护记录了,不确定该项目是否会继续维护,因此选择该工具应用于项目时,请考虑后续的技术支持与问题处理等所需要的解...
    99+
    2016-08-25
    ETL数据导入导出工具HData使用
  • 使用HeidiSQL如何导入导出MySQL数据
    本篇文章为大家展示了使用HeidiSQL如何导入导出MySQL数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。①首先,选择你要导出的数据库,点击鼠标右键:如下图所...
    99+
    2024-04-02
  • NoSQL数据库一MongoDB基本使用
    如今的网站对数据存储要求越来越灵活,在这种需求下 NoSQL 也就是非关系数据库越来越流行。所谓非关系数据库,是指不使用 SQL 语言进行数据操作的数据库的统称。这类数据库存储数据时没有固定的模式,不支持数...
    99+
    2024-04-02
  • 服务器怎么批量导入与导出数据
    这篇文章主要讲解了“服务器怎么批量导入与导出数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“服务器怎么批量导入与导出数据”吧!在使用IIS7远程桌面时,若有多个服务器需要添加,而逐一进行选...
    99+
    2023-06-05
  • MongoDB使用mongoexport和mongoimport命令,批量导出和导入JSON数据到同一张表的实例
    需求是这样的:需要修改数据库中某个表的所有数据,所以,要全部导出,然后修改,修改完之后,再把修改后的数据给再导入到mongo去。 具体如下: 备份,导出一张表为json文件 具体命令: mongoex...
    99+
    2024-04-02
  • sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法
    这篇文章主要介绍“sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法”,在日常操作中,相信很多人在sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作