MongoDB简单操作
Posted Mollylin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB简单操作相关的知识,希望对你有一定的参考价值。
MongoDB是一个基于 分布式 文件存储的开源数据库系统
在高负载的情况下,添加更多的节点,可以保证服务器性能
MongoDB将数据存储为一个文档,数据结构由键值(key=value)对组成.
1.1(Linux)MongoDB将数据目录存在data目录的db目录下,需要我们自己主动创建。
mkdir -p /data/db (/datat/db是MongoDB默认的启动的数据库路径 --dpath)
1.2 MongoDB后台管理shell
1.3查看当前操作的文档(数据库):db
1.4插入简单的记录,并查找它:
>db.runoob.insert({x:10}) //将数字10插入到runoob集合x字段中
>db.runoob.find()
2.1MongoDB概念
2.2 数据库
一个mongodb可以建立多个数据库。
默认数据库为”db“,存储在data目录下
MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中
1)show dbs可以显示所有数据的列表
2)use 可以连接到一个指定的数据库
>use local
switched to local
>db
local
>
2.3 文档
文档是一组键值(key-value)
eg: {"site":"www.bird.com","name":"bird"}
注:1、文档中的键/值是有序的。
2、文档中的 值 不仅可以是双引号里面的字符串,还可以是其他几种数据类型
3、MongoDB区分类型和大小写
4、MongoDB的文档不能有重复的键
5、文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符
2.4 集合
集合就是MongoDB文档组,类似于RDBMS(关系数据库管理系统)中的表格
2.5MongoDB数据类型
3.1 删除数据库
语法:db.dropDatabase() //删除当前数据库,默认为test
实例:
1、进入一个数据库
>use test
switched to db test
>
2、执行删除命令
>db.dropDatabase()
{"dropped" : "test" , "ok" : 1}
3.2 删除集合
语法:db.collection.drop()
eg:>use test
switched to db test
>show tables
site
>db.site.drop
true
>show tables
>
3.3 删除数据
1. 删除"ban_friends_id":"BAN121113"数据
1 > db.test_ttlsa_com.remove({"ban_friends_id":"BAN121113"})
3.4删除表中所有的数据
db.表名.remove({})
4.1插入文档
语法:db.Collection_name.insert(doucument)
1)eg:在runoob数据库中的col集合中存入文档
>db.runoob.insert({title:\'MongoDB\',
description:\'MongoDB是一个nosql数据库\',
tags:[\'mongodb\',\'database\',\'nosql\']
likes:100
})
如果col集合不在数据库里,MongoDB会自动创建此集合
2)查看插入的文档
>db.runoob.find()
4.2 将数据定义为一个变量
>document=({title=\'MongoDB\',
description:\'MongoDB是一个Nosql数据库\',
tags:[\'mongodb\',\'database\',\'nosql\']
likes:100
});
执行插入操作:
>db.col.insert(document)
WriteResult({"nInserted":1})
>
也可以使用db.clo.save(document)
5、查询
5.1.1小于 pretty() 方法以格式化的方式来显示所有文档
eg:db.access_points.find({"admin_id":{$lt:50}}).pretty()
5.1.2小于或等于
eg:db.access_points.find({"admin_id":{$lte:50}}).pretty()
5.1.3大于:
eg:db.access_points.find({"admin_id":{$gt:50}})
5.1.4大于或等于
eg:db.access_points.find({“admin_id”:{$gle:50}})
5.1.5 不等于
eg:db.access_points.find({"admin_id":{$ne:50}})
5.2 去重查询
eg: db.access_controllers.distinct("admin_id")
5.3 or 或查询
语法:
db.status.find({$ or : [{key1,value},{key2:value}]})
eg: db.access_points({$or:[{“admin_id”:1},{"mac":"111111111111"}]}).pretty()
5.4 Skip() :跳过记录条数:
eg:db.access_points.find().skip(2) //跳过第2条数据
5.5 sort() 排序
eg:db.access_controllers.find({"type":1},{admin_id:1}).sort({admin_id:-1}) // -1降序;1 升序
5.6 db.col.find({},{"title":1,_id:0}).limit(2)
补充说明:
第一个 {} 放 where 条件,为空表示返回集合中所有文档。
第二个 {} 指定那些列显示和不显示 (0表示不显示 1表示显示)。
5.6 正则查询
1)查询包含字符串test的内容
>db.posts.find({post_text:{$regex:"test"}})
2)查询包含字符test的内容
>db.posts.find({post_text:/test/})
3) 查询日期包含2017-09-06T01:33的字符串
db.summary.find({"insert_time" : {"$gte":ISODate(/.*2017-09-06T01:33.*/)},"org_id":1},{"device":1,"insert_time":1})
以上是关于MongoDB简单操作的主要内容,如果未能解决你的问题,请参考以下文章