博客
关于我
mongodb数据库的基本操作
阅读量:799 次
发布时间:2023-02-09

本文共 5746 字,大约阅读时间需要 19 分钟。

MongoDB日常使用命令指南

环境说明

在本文中,我们将以MongoDB数据库为背景,介绍一些常用的操作命令。对于刚接触MongoDB的读者,建议先熟悉数据库的部署过程,建议参考我们之前发布的《MongoDB部署指南》。

连接数据库

在使用MongoDB之前,首先需要连接到数据库。可以通过以下命令进行连接:

mongo IP:Port

其中,IP 是数据库所在的IP地址,Port 是端口号。例如,如果你要连接本地运行的MongoDB实例,可以使用以下命令:

mongo 192.168.112.130:27017

查看数据库

如果你想了解MongoDB中有哪些数据库存在,可以使用以下命令:

show dbs

执行后,你将看到所有存在的数据库列表。例如:

testrs:PRIMARY> show dbsadmin  0.000GBlocal  0.000GBtestrs:PRIMARY>

如果你想切换到某个特定的数据库,可以使用以下命令:

use database_name

例如:

testrs:PRIMARY> use yunweijiaswitched to db yunweijiatestrs:PRIMARY>

创建或切换数据库

在MongoDB中,数据库是逻辑上的概念,并不会像传统数据库那样有固定的结构。创建或切换数据库非常简单。使用以下命令可以创建或切换到所需的数据库:

use database_name

例如:

testrs:PRIMARY> use yunweijiaswitched to db yunweijiatestrs:PRIMARY>

注意到,新创建的数据库在未插入数据之前是不会被显示出来的。为了确认数据库是否存在,可以使用以下命令:

show dbs

如果数据库中还没有数据,你可能会发现它没有被列出。为了让数据库显示出来,可以尝试插入一些数据。例如:

testrs:PRIMARY> db.yunweijia.insert({"name":"运维家"})WriteResult({ "nInserted" : 1 })testrs:PRIMARY> show dbsadmin  0.000GBlocal  0.000GByunweijia  0.000GBtestrs:PRIMARY>

删除数据库

如果你想删除一个数据库,需要确保你正在操作正确的数据库。使用以下命令可以删除当前数据库:

db.dropDatabase()

例如:

testrs:PRIMARY> use yunweijiaswitched to db yunweijiatestrs:PRIMARY> db.dropDatabase(){ "dropped" : "yunweijia", "ok" : 1 }testrs:PRIMARY> show dbsadmin  0.000GBlocal  0.000GBtestrs:PRIMARY>

创建集合

MongoDB中的集合相当于传统数据库中的表。创建一个集合可以通过以下命令实现:

db.createCollection(name, options)

其中,name 是集合的名称,options 是可选参数。例如,如果你想创建一个固定大小的集合,可以使用以下命令:

db.createCollection("ceshi", { capped: true, size: 100 })

固定集合是一种特殊的集合类型,它会自动覆盖最早的文档,当达到最大容量时。创建集合后,你可以使用以下命令查看所有集合:

show collections

例如:

testrs:PRIMARY> use yunweijiaswitched to db yunweijiatestrs:PRIMARY> db.createCollection("ceshi"){ "ok" : 1 }testrs:PRIMARY> show collectionsceshitestrs:PRIMARY>

在MongoDB中,你不需要提前创建集合。插入数据时,MongoDB会自动为你创建所需的集合。例如:

testrs:PRIMARY> db.yunweijia.insert({"name":"运维家"})WriteResult({ "nInserted" : 1 })testrs:PRIMARY> show collectionsceshiyunweijiatestrs:PRIMARY>

删除集合

如果你想删除一个集合,可以使用以下命令:

db.collection.drop()

例如:

testrs:PRIMARY> use yunweijiaswitched to db yunweijiatestrs:PRIMARY> show collectionsceshijiersuneryunweijiatestrs:PRIMARY> db.jier.drop()truetestrs:PRIMARY> show collectionsceshisuneryunweijiatestrs:PRIMARY>

插入文档

在MongoDB中,文档是存储数据的基本单元。插入文档可以通过以下命令实现:

db.collection.insert(document)

文档必须是BSON格式。BSON是一种类似JSON的二进制数据交换格式。以下是一个简单的插入示例:

testrs:PRIMARY> db.col.insert({title: 'MongoDB 基础操作', description: 'MongoDB 是一个 Nosql 数据库', by: '运维家', url: 'http://www.baidu.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100})WriteResult({ "nInserted" : 1 })testrs:PRIMARY> db.col.find(){ "_id" : ObjectId("62011ae10e4263c83bd0dec8"), "title" : "MongoDB 基础操作", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "运维家", "url" : "http://www.baidu.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }

如果你想将文档定义为变量后再插入,可以这样做:

document=({title: 'MongoDB 基础操作', description: 'MongoDB 是一个 Nosql 数据库', by: '运维家', url: 'http://www.baidu.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100});testrs:PRIMARY> db.col.insert(document)WriteResult({ "nInserted" : 1 })testrs:PRIMARY> db.col.find(){ "_id" : ObjectId("62011ae10e4263c83bd0dec8"), "title" : "MongoDB 基础操作", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "运维家", "url" : "http://www.baidu.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }{ "_id" : ObjectId("62011c0f0e4263c83bd0dec9"), "title" : "MongoDB 基础操作", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "运维家", "url" : "http://www.baidu.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }

更新文档

如果你想更新某个文档的字段,可以使用以下命令:

db.collection.update(query, update, { upsert: true, multi: true })

其中,query 是更新的条件,update 是更新的操作。例如,以下命令会将某个文档的标题更新为“MongoDB 数据库”:

testrs:PRIMARY> db.col.update({'title':'MongoDB 基础操作'},{$set:{'title':'MongoDB 数据库'}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })testrs:PRIMARY> db.col.find().pretty(){ "title" : "MongoDB 数据库", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "运维家", "url" : "http://www.baidu.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }{ "title" : "MongoDB 基础操作", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "运维家", "url" : "http://www.baidu.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }

如果你想更新多个匹配的文档,可以设置 multi 参数为 true

testrs:PRIMARY> db.col.update({'title':'MongoDB 基础操作'},{$set:{'title':'MongoDB 数据库'}},{multi:true})

删除文档

如果你想删除某个文档,可以使用以下命令:

db.collection.remove(query, { justOne: true })

其中,query 是删除的条件。例如,以下命令会删除所有标题为“MongoDB 基础操作”的文档:

testrs:PRIMARY> db.col.remove({'title':'MongoDB 基础操作'})WriteResult({ "nRemoved" : 2 })testrs:PRIMARY> db.col.find(){ "_id" : ObjectId("62011ae10e4263c83bd0dec8"), "title" : "MongoDB 数据库", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "运维家", "url" : "http://www.baidu.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }

如果你只想删除第一条找到的文档,可以设置 justOne 参数为 true

testrs:PRIMARY> db.col.remove({'title':'MongoDB 基础操作'},1)

如果你想删除所有文档,可以使用以下命令(类似于 truncate 命令):

testrs:PRIMARY> db.col.remove({})

查询文档

如果你想查询文档,可以使用以下命令:

db.collection.find(query, projection)

其中,query 是查询条件,projection 是投影条件。例如,以下命令可以查询所有文档:

testrs:PRIMARY> db.col.find().pretty(){ "_id" : ObjectId("62011ae10e4263c83bd0dec8"), "title" : "MongoDB 数据库", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "运维家", "url" : "http://www.baidu.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }

如果你想只查询特定的字段,可以使用投影操作符。例如,以下命令可以只查询标题和描述:

testrs:PRIMARY> db.col.find({}, { 'title':1, 'description':1 }).pretty(){ "_id" : ObjectId("62011ae10e4263c83bd0dec8"), "title" : "MongoDB 数据库", "description" : "MongoDB 是一个 Nosql 数据库" }{ "_id" : ObjectId("62011c0f0e4263c83bd0dec9"), "title" : "MongoDB 基础操作", "description" : "MongoDB 是一个 Nosql 数据库" }

总结

以上就是MongoDB的一些基本操作命令,包括连接数据库、创建/删除数据库、创建/删除集合、插入、更新、删除和查询文档等。通过合理使用这些命令,你可以对MongoDB进行 CRUD 操作,管理数据库和集合,实现数据的存储和检索。

转载地址:http://xiffk.baihongyu.com/

你可能感兴趣的文章
mongoDB教程(十):导入、导出
查看>>
mongodb数据库运维常用语法
查看>>
MongoDB整理笔记の增加节点
查看>>
MongoDB文档常见查询
查看>>
mongoDb概述(翻译自官网)
查看>>
mongodb每天上亿数据量定期清理
查看>>
MongoDB的Decimal128类型转换成Java的BigDecimal类型错误
查看>>
mongoDB详解
查看>>
MongoDB语句
查看>>
MongoDB部署高可用集群
查看>>
mongoDB高级查询$type4array使用解析
查看>>
mongo启动失败
查看>>
Monibucav4(开源流媒体服务器)在Windows上搭建rtmp服务器并实现拉取rtsp视频流以及转换flv播放
查看>>
Monitor
查看>>
Monitorr 任意文件上传漏洞复现(CVE-2024-0713)
查看>>
Monitor原理
查看>>
MonoGame 示例项目教程
查看>>
mORMot Js对象解析 Json 实例
查看>>
MOSFET学习
查看>>
Mount实现Linux之间数据互相共享
查看>>