mongoDB

本文详细介绍了MongoDB的基本操作,包括启动MongoDB服务、创建和删除数据库、集合以及向集合中添加数据。还讨论了如何删除特定数据、更新文档属性,并提供了查询数据的各种方法,如简单查询、模糊查询、使用`limit()`和`skip()`以及排序。此外,文章还提及了数据导入和查询示例,展示了如何高效地管理和操作MongoDB数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongoDB简操作


问题一:对MongoDB进行配置和启动

MongoDB所在的安装目录,将bin文件夹所在目录进行path配置
启动任务管理器对应的MongoDB.exe执行文件,启动
打开MongoDB.exe执行文件

**问题二(增删改):创建数据库,删除数据库,创建集合,删除集合,
以及向集合里面添加数据的两种方式和删除相应条件的数据
包括更新一行的某个属性

2.1创建数据库:如果没有要创建的数据库:use 数据库名称
2.2删除当前数据库:db.dropDatabase()
2.3创建集合:先进入要使用的数据库:use 数据库
db.createCollection(“name”)//name为集合名称
显示现有的数据库:show dbs
2.4删除集合:db.name.drop()//删除名称为name的集合
2.5向数据库 xsgl的students集合插入单条数据:
use xsgl
db.students.insert({_id:1,name:‘李红’,birth:‘1983-2-9’,sex:‘女’,major:‘计算机’})
向数据库 xsgl的students集合插入多条数据:
db.students.insert([{_id:2,name:‘张敏’,birth:‘1983-7-2’,sex:‘女’,major:‘计算机’,class:‘160701’,credit:130},{_id:3,name:‘程明’,birth:‘1985-6-26’,sex:‘男’,major:‘会计’,class:‘161201’,score:{math:90,Chinese:39,English:76}}])
切记在文本中不要有空格和断行,在mongoDB中不能识别,以及中文的标点符号也易出错
db.集合名.insertMany([{文档1},文档2,…]) //增加多行文档,Many可有可无
2.6删除集合中的相应信息的数据
例如:删除集合中学生为李红的数据
db.name.remove({name:‘李红’})//name为集合名称
删除某一条数据的一个属性,例如删除李红的sex属性
db.name.update({name:‘李红’},{KaTeX parse error: Expected 'EOF', got '}' at position 16: unset:{sex:'女'}}̲)//name为集合名称 …unset:{sex:‘女’}})
2.7 更新某条记录的属性:
例如更新students集合中的李红的major改成金融
db.students.update({name:‘李红’},{KaTeX parse error: Expected 'EOF', got '}' at position 20: …me:{major:'金融'}}̲) 添加李红的属性:h…set:{hobby:‘写程序’}})
把李红的年龄增加一岁:
db.students.update({name:‘李红’},{KaTeX parse error: Expected 'EOF', got '}' at position 12: inc:{age:1}}̲)//age后面跟的是正 数表…push:{honors :{$each:[ ‘优秀团员’,‘游戏’]}}})

问题三:查询,根据要求查询相关信息(包括:简单查询,模糊查询,limit()和skip(),排序)

3.1 简单查询
语法:db.name.find({},{})//第一个花括号表示查询的表达式,第二个表示的是查询的列
例如:查询_id为2的数据
db.name.find({_id:2},{})//name为集合名称,第二个括号不写,表示把id为2的所有信息都输出
查询当前集合中的所有信息,同时有层次地展现出来
db.name.find().pretty()//name为集合名称
来个小插曲:我们进行查询的时候,借助一个数据库,下面是使用的方法
cmd:导入.
mongoimport -d library -c books --file e:\books.dat//-d后跟数据库名 -c 集合名 --file跟上路径
下面我将以问题的形式来解决and or,以及一些小技巧的查询
查询价格在20到40之间的图书的名称,价格,出版社;
db.books.find({price:{gt:20,gt:20,gt:20,lt:40}},{_id:0,price:1,title:1,publisher:1})
查询评分超过8.5的图书的编号、名称、评分、类别;
 db.books.find({score:{KaTeX parse error: Expected 'EOF', got '}' at position 7: gt:8.5}̲},{title:1,scor…and:[{tag:‘金融’,score:{KaTeX parse error: Expected 'EOF', got '}' at position 5: gt:8}̲}]},{_id:0,titl…or:[{tag:‘文学’,tag:‘经济’,tag:‘科技’}]},{})
3.2模糊查询
 查询名称含有“Java”的图书的编号(_id)、名称(title)、价格(price)、评分(score);
 db.books.find({title:/Java/ },{title:1,price:1,score:1 })//book为集合名称
 查询书名以“程序设计”结尾的图书的编号、书名和出版社;
 db.books.find({title:/程序设计KaTeX parse error: Expected 'EOF', got '}' at position 3: / }̲,{title:1,publi…/ },{title:1,publisher:1 })
 查询第二个作者是…的图书信息;
 查询以’Java’开头,以’设计’结尾的图书的名称和价格;
 db.books.find({title:/^Java.*设计KaTeX parse error: Expected 'EOF', got '}' at position 2: /}̲,{_id:0,price:1…regex:/^Java.*设计$/ }},{_id:0,price:1,title:1 } )
3.3-3.4排序和分页
 查询科技类别的图书的信息,按照评分从高到低排序;
 db.books.find({tag:‘科技’},{}).sort({score:-1})
 查询评分前10的图书的信息;
 查询评分排名11-20的图书的信息;
 db.books.find({},{}).sort({score:-1}).limit(10).skip(9)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值