网站制作学习网Database→正文:MongoDB 数据库操作
字体:

MongoDB 数据库操作

Database 2024/1/15 18:09:08  点击:不统计

forasp.cn

MongoDB 从安装到使用,基础教程
 
一 安装数据库 
系统: 命令
ubuntu  : apt-get install mongodb
centos(AliyunOS) :sudo yum install -y mongodb-org
Mac OS :brew install mongodb-community (https://brew.sh/)
 
二  软件操作
(1)查看版本
命令: mongod --version
返回:
:~$ mongod --version
db version v3.6.8
git version: 8e540c0b6db93ce994cc548f000900bdc740f80a
OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020
allocator: tcmalloc
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64
(2)启动
ubuntu命令:sudo systemctl start mongodb
centos命令: sudo systemctl start mongod
MacOS命令:brew services start mongodb-community
设置开机启动:
ubuntu命令:sudo systemctl enable mongodb
centos命令:sudo systemctl enable mongodb
重启更改命令为 restart
关闭更改命令为 stop
 
三 进入 mongodb 数据库数据库管理命令行
(1) 管理员进入
命令:mongo
(2)指定host 和端口
命令:mongo --host your_mongodb_host --port your_mongodb_port
(3)指定host 、port 、user、password  和数据库
命令:mongo --host your_mongodb_host --port your_mongodb_port -u your_username -p your_password --authenticationDatabase admin
(4) 退出命令
命令: exit
或者键盘: Ctrl(Cmd)+D
 
四 数据库操作
(1) 查看所有数据库
命令:show dbs
返回:
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
 
(2)创建一个数据库
命令:> use database_name
(3)使用/操作选中数据库,和创建命令一样,如果没有则自动创建
命令:> use database_name
switched to db forasp
(4)删除一个数据库
命令:> use your_database_name
db.dropDatabase()
 
 
五 集合(表)的操作:
(1) 字段类型有哪些
String(字符串):存储文本数据。示例:"Hello, MongoDB!"
Integer(整数):存储整数值。示例:42
Double(双精度浮点数):存储浮点数值。示例:3.14
Boolean(布尔):存储布尔值,表示 true 或 false。示例:true
Date(日期):存储日期和时间。示例:ISODate("2022-01-15T12:34:56.789Z")
Array(数组):存储数组或列表。示例:[1, 2, 3]
Object(对象):存储嵌套的文档,是 JSON 风格的键值对。示例:{ "key": "value" }
Null(空):存储空值,示例:null
ObjectId:存储文档的唯一标识符。示例:ObjectId("507f1f77bcf86cd799439011")
Binary Data(二进制数据):存储二进制数据,如图片、音频等。示例:BinData(0, "base64_encoded_data")
Timestamp(时间戳):存储时间戳。示例:Timestamp(1642254872, 1)
Regular Expression(正则表达式):存储正则表达式。示例:/pattern/i
 
(2)创建一个集合(表) 
创建一个用户表users 有3个字段 id 主键 数字 自增, name 名称字符串 regtime 创建时间年月日时分秒
因为是非关系数据库,没有自增概念 所以id 以默认"_id" 为主键 ,创建的表则是一个关系集。
命令如下:
> use forasp;
switched to db forasp
命令> db.createCollection("users")
{ "ok" : 1 }
(3)列出所有集合(表) 
命令> show collections
(4)删除一个集合(表) 
命令:> db.collection_name.drop()
(5) 清理一个集合(表)
命令: > db.your_collection_name.deleteMany({})
 
 六 数据操作
 选中数据库命令:use your_database_name
然后再有以下操作
 (1)users 插入数据
 命令 > db.users.insert({name:'forasp',regtime:new Date()})
 WriteResult({ "nInserted" : 1 })
(2)批量插入数据
命令 > db.users.insertMany([{name:'forasp4',regtime:new Date()},{name:'forasp5',regtime:new Date()}])
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("65a4f99401bc34be8aef9b27"),
ObjectId("65a4f99401bc34be8aef9b28")
]
}
 (3)查询数据
 查询所有
命令>var allUsers = db.users.find()
// 遍历并打印查询结果
>allUsers.forEach(function(user) {
    printjson(user);
})
条件查询
var usersWithCondition = db.users.find({ name: "aaa" })
// 遍历并打印查询结果
usersWithCondition.forEach(function(user) {
    printjson(user);
})
统计数量
命令> var countUsersWithCondition = db.users.count({ name: "aaa" })
print(countUsersWithCondition)  
 (3)更新数据,将名称 forasp5 更新为 forasp6 
 命令:> db.users.updateOne(
    { name: "forasp5" },          // 查询条件
    { $set: { name: "forasp6" } }  // 更新操作,使用 $set 来设置新的值
)
 
 (4)删除数据
// 删除符合条件的第一个文档
db.users.deleteOne({ name: "forasp1" })
// 删除所有符合条件的文档
db.users.deleteMany({ name: "aaa" })
// 删除符合条件的第一个ID文档
db.users.deleteOne({ _id: ObjectId("your_object_id") })
// 删除所有符合条件的ID文档
db.users.deleteMany({ _id: ObjectId("your_object_id") })
// 删除以 "aaa" 开头的用户文档(第一个匹配的文档)支持正则查询删除
db.users.deleteOne({ name: /^aaa/ })
// 删除所有以 "aaa" 开头的用户文档
db.users.deleteMany({ name: /^aaa/ })
(6)导入数据,需要是csv 或者json 格式
CSV 格式
mongoimport --db your_database_name --collection collection_name --type csv --file your_file.csv --headerline
JSON格式
mongoimport --db your_database_name --collection collection_name --file your_file.json
(7)导出数据, --fields以确保只导出你需要的字段。
导出CSV 
mongoexport --db your_database_name --collection collection_name --type csv --fields field1,field2,field3 --out your_output_file.csv
导出JSON
命令: > mongoexport --db your_database_name --collection collection_name --out your_output_file.json
 
 七 数据库账号 与远程连接
(1) 创建数据库连接账号,需要在admin 数据库下操作。
命令:
> use admin
> db.createUser({
    user: "new_username",
    pwd: "remote_password",
    roles: [
        { role: "readWrite", db: "database_name" },
         { role: "readWrite", db: "database_name2" },
# 等
    ]
})
 
启用  MongoDB 配置文件中确保启用了身份验证
打开 MongoDB 的配置文件(通常是 /etc/mongod.conf 或 C:\Program Files\MongoDB\Server\your_version\bin\mongod.cfg),并确保 security.authorization 选项设置为 enabled:
如下:
security:
  authorization: enabled
 
  修改完毕需要重启一下 mongodb 服务
 (2) 远程连接数据库 .默认端口 27017
 mongo --host xxx --port port -u your_admin_user -p
 
 以上就是Mongodb 的常规操作。
 

·上一篇:Sqlite数据库操作 >>    ·下一篇:设置mysql创建数据库默认编码字符集 >>
推荐文章
最新文章