当前位置: 移动技术网 > IT编程>数据库>MongoDB > MongoDB基础

MongoDB基础

2019年09月07日  | 移动技术网IT编程  | 我要评论

mongodb是一个以分布式数据库为核心的数据库。它将数据存储在类似json的bson文档中,具有高性能、容易部署、方便使用的特点。特别是为查询、索引和实时聚合提供了访问和分析数据的强大方法支持。目前mongodb已经提供了十多种主流开发语言驱动的。

下载与安装

mongdb的安装很简单,下载安装包后,只需一路点击下一步即可。mongodb默认是没有配置环境变量的,所以安装完成后需要手动设置下环境变量,默认的路径是c:\program files\mongodb\server\3.6\bin (根据系统不同会有些差异)


crud操作

创建数据库

首先创建一个数据库目录,将他作为数据库的存放目录,然后通过指令开启或创建一个数据服务

mongod --dbpath d:\mongodb\testdb


我们可以通过mongodb默认的端口服务查看数据库服务是否开启成功

mongodb还自带了一个管理工具,我们可以通过它来管理数据库

可以通过命令查看mongodb中是否创建testdb成功,但是我们发现数据库列表中并没有testsdb,是因为创建的testdb库中是空的,等给库添加集合(表)后,它就显示出来了

show dbs  --查看所有数据库
db             --显示当前操作的数据库
show collections --显示当前数据库下的表集合
use testdb  --切换或创建到testdb数据库

创建数据表

monodb无需手动创建数据表,当我们在新增数据的时候,如果库中没有当前的集合表,它会自动给我们创建

增加一条数据

向集合中插入一条数据

db.products.insertone({"name":"钢笔","price":20.99,"date":"2019-09-07"})

向集合中插入一条或多条数据

db.products.insert([{"name":"圆珠笔","price":1.00,"date":"2019-09-07"},{"name":"毛笔","price":5.59,"date":"2019-09-07"}])

向集合中插入多条数据

db.products.insertmany([{"name":"圆珠笔","price":1.00,"date":"2019-09-07"},{"name":"毛笔","price":5.59,"date":"2019-09-07"}])

导入数据

创建一个将要被导入的数据文件,需要注意每条数据内容为json格式

mongoimport --db testdb --collection projects --file c:\users\yangj\desktop\data.json

数据查询

查询所有数据

db.projects.find()

根据条件查询数据

db.products.find({"name":"钢笔"})
db.products.find({"name":"钢笔","price":20.99})
db.products.find({"price":{$lt:3}}) 查询价格小于3的产品
db.products.find({"price":{$gt:3}})  --查询价格大于3的产品

需要注意的是传递的参数字段名称是区分大小写的,这点与其他数据库有点不一样

修改数据

db.products.update({"name":"铅笔"},{$set:{"price":19.09}})

需改数据同样也有updateone、updatemany等方法,需要注意的是如果没有使用$set参数,原来的数据会直接被覆盖掉;还可以使用替换方法replaceone,语法基本都差不多

删除数据

db.products.remove({"price":19.99})
db.products.remove({"price":1},{justone:true}) --只删除一条符合该条件的数据
db.products.remove({}) --删除所有表数据

删除表

db.products.drop()

删除库

如果将库中的所有数据表都删除,默认是将库也删除,所以当只有库中有数据的时候 show dbs才能看得到该数据库

数据排序

在 mongodb 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列

db.products.find({"name":"产品1"}).sort({"price":1})

分页查询

db.products.find().limit(5).skip(3)

skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网