页面设计排版网站,贵州 网站建设,企业网站建站模板,网站标题的选择前提 完成linux平台部署MongoDB【部署教程】且完成mongosh的安装 由于本人使用的是6.0版本的MongoDB#xff0c;新版本 MongoDB#xff08;尤其是 6.0 及以上版本#xff09;已经不再默认捆绑传统的 mongo shell#xff0c;而改用新的 MongoDB Shell#xff08;mongosh新版本 MongoDB尤其是 6.0 及以上版本已经不再默认捆绑传统的 mongo shell而改用新的 MongoDB Shellmongosh。 但有时即便是 mongosh也需要单独下载和安装而不会直接出现在 bin 目录下。 本人该版本是没有mongosh的故自己安装实现的步骤如下 mongosh 命令行下载 #下载命令行工具 mongosh
wget https://downloads.mongodb.com/compass/mongosh-2.0.1-linux-x64.tgz
#解压命令行mongosh工具
tar -zxf mongosh-2.0.1-linux-x64.tgz -C /opt/module/mongodb_demo/mongodb/standalone
cd /opt/module/mongodb_demo/mongodb/standalone/mongosh-2.0.1-linux-x64/bin
cp mongosh /usr/local/bin/ #复制到全局变量中这样就可以任意位置运行mongosh配置好后启动好mongodb后运行mongosh命令 出现以上显示 就成功啦 接下来就介绍相关操作命令嘞 1.创建数据库mydb并给指定的集合添加文档 use mydb #使用mydb数据库
db.createCollection(xxx) #自定义集合名称 1用insert()向集合中添加:_id为1001姓名为张三年龄为20的文档。 2用insert()向集合中添加:姓名为赵四年龄为40岁的文档。 3用save()向集合中添加:姓名为赵四年龄为20岁的文档。 在 MongoDB 4.x 版本及以后的版本中save() 方法已经被弃用取而代之的是 insertOne() 和 insertMany() 方法。原本save重复插入文档会自动更新insert重复插入会报错 当使用save()方法时会报错 TypeError: db.wurui.save is not a function 。 4查询各自集合中的内容。--find()函数 5用insert()向集合中添加:_id为1001姓名为李白年龄为30的文档。 6用save()向集合中添加:_id为1001姓名为李白年龄为30的文档。改为insertOne() 2.查找文档 (1).查找集合中姓名为赵四的文档。 (2).查找集合中姓名为赵四年龄为40的文档。 (3).使用命令查找集合的第一条记录。 db.wurui.findOne() (4).查询集合中的所有内容。 3.删除文档 (1).使用命令删除集合中姓名为赵四的文档。 (2).删除集合中所有文档。 4.更新数据库 (1)数据准备新建user集合并插入以下内容 将users集合中姓名为方世玉的名字修改为洪七公,college改为安理工。 db.users.update ({ name: 方世玉 },{ $set: { name: 洪七公, college: 安理工 } }
) 2.将年龄为32岁的所有记录的college改为清华大学。 5.使用mongodb的MapReduce函数 1考虑以下文档结构存储用户的文章文档存储了用户的 user_name 和文章的 status 字段 db.XXX.insert({ post_text: 纸上得来终觉浅绝知此事要躬行。, user_name: Jerry, status:active }) db.XXX.insert({ post_text: 读书不觉已春深一寸光阴一寸金。, user_name: Jerry, status:active }) db.XXX.insert({ post_text: 天生我材必有用千金散尽还复来。, user_name: Jerry, status:active }) db.XXX.insert({ post_text: 世上无难事只怕不专心。, user_name: Jerry, status:active }) db.XXX.insert({ post_text: 穷则独善其身达则兼济天下。, user_name: Jerry, status:disabled }) db.XXX.insert({ post_text: 博学之审问之慎思之明辨之笃行之。, user_name: Tom, status:disabled }) db.XXX.insert({ post_text: 路漫漫其修远兮吾将上下而求索。, user_name: Tom, status:disabled }) db.XXX.insert({ post_text: 夫君子之行静以修身俭以养德。, user_name: Tom, status:active }) 2在XXX集合中使用 mapReduce 函数来选取已发布的文章(status:“active”)并通过user_name分组计算每个用户的文章数。 3使用 find 操作符来查看 mapReduce 的查询结果。 4使用aggregate()计算每个用户的文章数。 6.使用管道操作符 建立文档 订单表 db.order.insert({order_id:1,uid:10,trade_no:111,all_price:100,all_num:2}) db.order.insert({order_id:2,uid:7,trade_no:222,all_price:90,all_num:2}) db.order.insert({order_id:3,uid:9,trade_no:333,all_price:20,all_num:6}) 订单商品表 db.order_item.insert({order_id:1,title:商品鼠标1,price:50,num:1}) db.order_item.insert({order_id:1,title:商品键盘 2,price:50,num:1}) db.order_item.insert({order_id:1,title:商品键盘 3,price:0,num:1}) db.order_item.insert({order_id:2,title:牛奶,price:50,num:1}) db.order_item.insert({order_id:2,title:酸奶,price:40,num:1}) db.order_item.insert({order_id:3,title:矿泉水,price:2,num:5}) db.order_item.insert({order_id:3,title:毛巾,price:10,num:1}) 1要求查找集合order中的数据只返回文档中trade_no和all_price字段。 db.order.aggregate([
... {$project:{_id:0,trade_no:1,all_price:1}}]) 2要求查找集合order中的数据只返回文档中trade_no和all_price字段且过滤掉all_price小于90的数据。 db.order.aggregate([{$match:{all_price:{$gte:90}}},{$project:{_id:0,trade_no:1,all_price:1}}]) 3统计每个订单下的商品总数量按照订单号分组。 4要求查找集合order中的数据只返回文档中trade_no和all_price字段且过滤掉all_price小于90的数据最后按照all_price进行降序排序返回第一条数据