Mongodb快速入门

本文介绍MongoDB的基础操作,包括安装启动、基本CRUD操作及排序等,适合初学者快速掌握MongoDB的基本使用。

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

1.Why MongoDB?

我个人有个习惯,要学习某个东西,我一定会去了解它的优点,不然我为什么要把时间花在上面呢?了解后,开始迅速地入门操作吧

1.安装MongoDB,启动service

2../mongo启动客户端

3.切换数据库,如果不存在名为dummy的数据库,则创建 .类比于oracle的实例

use dummy
4.创建集合,类比于sql数据库里的table
db.createCollection('author')

5.查看所有数据库以及当前数据库下的集合

show databases/collections

6.删除集合

db.author.drop

7.向集合中插入数据,一个数据块是一个文档,类比于SQL数据库表里的一行。结构为bson(简单理解为存储为二进制的json),各文档的数据结构可以不同,使用灵活

db.createCollection('movie')
  db.movie.insert(
{
	title:'yingziairen',
	director:'hehe',
	stars:['Angela Zhang','Jin Boran'],
	tags:['romance','drama'],
	debut: new Date(1994,7,6,0,0),
   	likes: 864367,
  	dislikes: 30127,
   	comments:[
	{
		name:'zj',
		text:'good,i like it',
		like:'10000'
	},
	{
		name:'wj',
		text:'angela is so beautiful!',
		like:'12345'
	}
   ]
}
)

8.插入多个document

db.movie.insert([
 {
   title: 'Fight Club', 
   director: 'David Fincher',
   stars: ['Brad Pitt', 'Edward Norton', 'Helena Bonham Carter'],
   tags: 'drama',
   debut: new Date(1999,10,15,0,0),
   likes: 224360,
   dislikes: 40127,
   comments: [	
      {
         name:'user7',
         text: 'Good Movie!',
         dateCreated: new Date(2009,10,11,6,20),
         like: 2
      }
   ]
},
{
   title: 'Seven', 
   director: 'David Fincher',
   stars: ['Morgan Freeman', 'Brad Pitt',  'Kevin Spacey'],
   tags: ['drama','mystery','thiller'],
   debut: new Date(1995,9,22,0,0),
   likes: 134370,
   dislikes: 1037,
   comments: [	
      {
         name:'user3',
         text: 'Love Kevin Spacey',
         dateCreated: new Date(2002,09,13,2,35),
         like: 0 
      },
      {
         name:'user2',
         text: 'Good works!',
         dateCreated: new Date(2013,10,21,6,20),
         like: 14 
      },
      {
         name:'user7',
         text: 'Good Movie!',
         dateCreated: new Date(2009,10,11,6,20),
         like: 2
      }
   ]
}
])

9.查询

db.movie.find().pretty() //pretty()经过美化后的输出格式

db.movie.find('director':'hehe') 
db.movie.find({'director': 'David Fincher','stars':'Morgan Freeman'})  //AND对于包含多个值的key只要符合一个就可以了
db.movie.find({$or:[{'stars':'Morgan Freeman'},{'stars':'Angela Zhang'}]}) //or
db.movie.find({likes:{$gt:10000}})   $gt,$lt,$get,$let<=,$ne key的引号可要可不要
db.movie.findOne(director:'David Fincher') 按磁盘存储顺序返回第一个。请注意,findOne()自带pretty模式,所以不能再加pretty()
db.movie.find().skip(1).limit(1) 跳过第一条记录,从第二条开始查一条
db.movie.find({'tags':'drama'},{'debut':1,'title':1,'_id':0}).pretty()  //select非*,find的第二个参数是用来控制输出的,1表示要返回,而0则表示不返回。默认值是0,但_id是例外
db.movie.find({title:/ingz/}).pretty() //使用正则表达式查询where title like '%ingz%'
db.movie.find({'comments.name':'zj'})  //通过内嵌json的K-V过滤

10.更新:
db.movie.update({title:'Seven'},{$set:{likes:134371}})
db.movie.update({title:'Seven'}, {$inc:{likes:2}}) 增量更新
注意如果有多部符合要求的电影。则默认只会更新第一个。如果要多个同时更新,要设置{multi:true}
db.movie.update({}, {$inc:{likes:10}},{multi:true})
以上的更新操作会替换掉原来的值,所以如果你是想在原有的值得基础上增加一个值的话,则应该用$push
db.movie.update({'title':'Seven'}, {$push:{'tags':'popular'}})
db.movie.update({'title':'Seven'}, {$set:{'tags':'popular'}}) //原tags为array,变为String类型

11.删除:

db.movie.remove({'tags':'romance'})
上面的例子会删除所有标签包含romance的电影。如果你只想删除第一个,则
db.movie.remove({'tags':'romance'},1)

12.排序:
排序:1升序,-1降序
db.movie.find().sort({'title':1}).pretty()


windows下图形化界面mongo客户端推荐:robo 3T

软件直接上手,支持shell操作。仅提1点刚接触容易被往常经验坑的地方:

1.输入查询条件后回车不会执行,需要按F5执行

后记

本篇blog为mongoDB学习入门笔记,希望能帮到初识mongo的人(尤其是测试人员了解增删改查以及排序)了解mongoDB最最基本的操作,参考的原文链接:

https://github.com/StevenSLXie/Tutorials-for-Web-Developers/blob/master/MongoDB%20%E6%9E%81%E7%AE%80%E5%AE%9E%E8%B7%B5%E5%85%A5%E9%97%A8.md


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值