MongoDB入门到进阶笔记:03MongoDB的客户端使用 常用操作
MongoDB是一个开源的NoSQL数据库,它使用BSON(类似于JSON)格式存储数据,在本篇笔记中,我们将介绍如何使用MongoDB的客户端进行常用操作。
安装MongoDB客户端
1、下载MongoDB客户端
访问MongoDB官网(https://www.mongodb.com/try/download/community)下载对应操作系统的MongoDB客户端。
2、安装MongoDB客户端
解压下载的压缩包,然后进入解压后的目录,运行以下命令进行安装:
sudo make install
启动MongoDB服务
1、启动MongoDB服务
在命令行中输入以下命令启动MongoDB服务:
mongod dbpath /data/db logpath /var/log/mongodb/mongodb.log fork logappend
dbpath
指定数据库文件存放路径,logpath
指定日志文件存放路径。
2、连接MongoDB服务
在命令行中输入以下命令连接到MongoDB服务:
mongo
常用操作
1、查看所有数据库
在MongoDB客户端中,输入以下命令查看所有数据库:
show dbs
2、切换数据库
在MongoDB客户端中,输入以下命令切换到指定的数据库:
use 数据库名
切换到test数据库:
use test
3、查看当前数据库中的集合(表)
在MongoDB客户端中,输入以下命令查看当前数据库中的所有集合:
show collections
4、插入文档(记录)
在MongoDB客户端中,输入以下命令插入一个文档:
db.集合名.insert({字段1: "值1", 字段2: "值2"})
向test数据库的users集合中插入一个文档:
db.users.insert({name: "张三", age: 25, gender: "男"})
5、查询文档(记录)
在MongoDB客户端中,输入以下命令查询文档:
db.集合名.find() // 查询所有文档 db.集合名.find({条件}) // 查询满足条件的文档,条件为键值对对象,如{age: {$gt: 20}}表示年龄大于20的文档
查询test数据库的users集合中所有文档:
db.users.find()
查询test数据库的users集合中年龄大于20的文档:
db.users.find({age: {$gt: 20}})
6、更新文档(记录)
在MongoDB客户端中,输入以下命令更新文档:
db.集合名.update({条件}, {$set: {字段1: "新值1", 字段2: "新值2"}}) // 更新满足条件的文档,将字段1和字段2的值分别设置为新值1和新值2,如果没有指定字段,则表示修改整个文档的内容,如果需要修改多个字段,可以多次调用update方法,如果需要删除字段,可以使用{$unset: {字段名}},如果需要添加字段,可以使用{$set: {字段名: "新值"}},如果需要修改数组中的某个元素,可以使用{$set: {数组名.索引: "新值"}},如果需要删除数组中的某个元素,可以使用{$pull: {数组名: {_id: ObjectId("元素ID")}}},如果需要替换数组中的某个元素,可以使用{$set: {数组名: [{"_id": ObjectId("元素ID"), "新属性1": "新值1", "新属性2": "新值2"}]}},如果需要限制更新数量,可以使用{$limit: 数量},如果需要跳过某些匹配的元素,可以使用{$skip: 数量},如果需要返回更新的数量,可以使用{$returnNewDocument: true},如果需要返回更新前的文档,可以使用{$returnOldDocument: true},如果需要返回更新前后的文档,可以使用{$returnDocument: "before" | "after"},如果需要按照某个字段排序后更新,可以使用{$sort: {字段名: 1 | 1}},如果需要按照某个字段分组后更新,可以使用{$group: {_id: "$字段名", count: {$sum: 1}}},如果需要按照某个字段去重后更新,可以使用{$addToSet: {字段名: "新值"}},如果需要按照某个字段求和后更新,可以使用{$sum: {字段名}},如果需要按照某个字段求平均值后更新,可以使用{$avg: {字段名}},如果需要按照某个字段求最大值或最小值后更新,可以使用{$max: {字段名}}或{$min: {字段名}},如果需要按照某个字段求总和后更新,可以使用{$push: {数组名: "新值"}},如果需要按照某个字段求差集后更新,可以使用{$pullAll: {数组名: ["值1", "值2"]}},如果需要按照某个字段求交集后更新,可以使用{$intersect: {数组名: ["值1", "值2"]}},如果需要按照某个字段求笛卡尔积后更新,可以使用{$cartesianProduct: [Array]},如果需要按照某个字段求幂运算后更新,可以使用{$pow: {字段名, 指数}},如果需要按照某个字段求对数运算后更新,可以使用{$log: {字段名, base}},如果需要按照某个字段求绝对值后更新,可以使用{$abs: {字段名}},如果需要按照某个字段求平方根后更新,可以使用{$sqrt: {字段名}},如果需要按照某个字段求正弦值后更新,可以使用{$sin: {字段名}},如果需要按照某个字段求余弦值后更新,可以使用{$cos: {字段名}},如果需要按照某个字段求正切值后更新,可以使用{$tan: {字段名}},如果需要按照某个字段求反正弦值后更新,可以使用{$asin: {字段名}},如果需要按照某个字段求反余弦值后更新,可以使用{$acos: {字段名}},如果需要按照某个字段求反正切值后更新,可以使用{$atan: {字段名}},如果需要按照某个字段求自然对数后更新,可以使用{$ln: {字段名}},如果需要按照某个字段求以10为底的对数后更新,可以使用{$log10: {字段名}},如果需要按照某个字段求以e为底的指数后更新,可以使用{$exp: {字段名}},如果需要按照某个字段求以2为底的指数后更新,可以使用{$pow2: {字段名}},如果需要按照某个字段求以10为底的指数后更新,可以使用{$pow10: {fieldName}},如果需要按照某个字段求以e为底的对数后更新,可以使用{$logE: fieldName},如果需要按照某个字段求以2为底的对数后更新,可以使用{$log2: fieldName},如果需要按照某个字段求以10为底的对数后更新,可以使用{$log10e},如果需要按照某个字段求以e为底的对数后更新,可以使用{$loge},如果需要按照某个字段求以2为底的对数后更新,可以使用{$log2e},如果需要按照某个字段求以10为底的对数后更新,可以使用{$log10e},如果需要按照某个字段求以e为底的对数后更新,可以使用{$loge},如果需要按照某个字段求以2为底的对数后更新,可以使用{$log2e},iftleftrightarrowrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrowleftrightarrow leftarrowrightharpoonup } } } } } } } } } } } } } } } } } } } } } } } } } } } 如果需要按照某个字段求左移或右移操作后更新,可以使用{$shiftLeftRightArrows},iftrightharpoonup } } } } } } } } } } } } } } } } }
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/505548.html