首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mongodb连接与查询

最近一个项目中又接触到了mongo数据库,在本次测试过程中,需要自己查据,造数据,又重新整理了一遍用到的命令,以下是笔记整理

在mongodb里面用到的主要概念是文档,是一个分布式文档存储数据库

MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。

(一)mongo连接进入

1.连接mongodb

$mongo

2.查看mongodb的版本

$db.version()

3.查看当前有哪些数据库(对应sql:show databases)

$show dbs

疑问:当前要是没有切入admin数据库,就无法查看,不清楚原因。。

4.切入admin数据库:(对应sql :use database)

$use admin(和mysql的切换数据库一样)

$db.auth("username","password")

$show dbs

5.查看集合(对应sql show tables)

$show collections(也用show 这里的collections也就是mysql的表概念差不多)

6.查看文档(对应sql: select)

$db.collections_name.find()----无筛选条件,一般情况下不要直接用,数据量太大

$db.collections_name.find({'key':'value'})-----有筛选条件

7.插入文档(对应sql: insert into)

目前用的不多,先记录这么多,不用就算记录下来也还是会忘记

(二)mongo查询语句

(1)查询大于小于,一个区间

$gt 大于

$lte 小于

解释:返回时间大于153456789,小于153479893的记录,限制20条

相当于sql:

$select * from collection where time >153456789 and time

或:$select * from collection where time between 153456789 and 1534798932 limit 20;

(2)模糊匹配

简单的模糊匹配:/string/

高级的模糊匹配,需要用到正则,*,^之类的(需要好好学习正则匹配)

例:$db.collection.find({"address":/顺义区/}).limit(20)

解释:返回address中包含顺义区的记录,限制20条

相当于sql:

$select * from collection where address like"%顺义区%" limit 20;

(3)统计条数

计数:count()

解释:返回collection的记录条数

相当于sql:

$select count(*) from collection;

(4)限制返回条数

limit(n);限制n条记录返回

相当于sql:

$ select * from collectionlimit5;

(5)修改数据

update()

例:

修改多条数据:$db.location_201811.update({'moid':'京AFW272'},{$set:{'moid':'京ABB170'}},)

解释:修改所有数据中车牌:“京AFW272”为“京ABB170”

修改单条数据:$db.location_201811.update({'moid':'京AFW272'},{$set:{'moid':'京ABB170'}})

解释:修改一条数据中车牌:“京AFW272”为“京ABB170”

相当于sql:

$update collection set moid="京ABB170" where moid="京AFW272";

(6)插入数据

insert()和save()都表示插入数据,当insert插入同样的id时会出现异常,save会强制更新掉

(7)返回指定字段的数据

解释:

前面:{"plate":"陕A11111"}:表示查询车牌为:陕A1111的数据

后面:{"plate:1,"address":1,"time":1},表示查询需要返回的字段

tip:

1.mongo规定除过id可以随意设定为0或者1,表示返回或不返回,其余字段不允许交叉设置为0和1的情况

2.即除了_id,你不能在一个对象中同事指定0和1,如果你设置了一个字段为0,则其他未设置的值默认为1,反之亦然

相当于sql:

$select plate,address,time from collection where plate='陕A11111' limit 5;

(8)数据排序

sort({"time":-1})或者sort({"time":1})

解释:

接(7),按照时间倒叙排列,返回车牌为陕A1111,指定字段的5条记录,其中sort方法中,-1表示倒排,如果设置为1,即表示按照时间正序排序

相当于sql:

sort({"time":-1}):按照时间倒叙

$select plate,address,time from collection where plate='陕A11111' order by time desc limit 5;

sort({"time":-1}):按照时间正序

$select plate,address,time from collection where plate='陕A11111' order by time limit 5;

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181205G0QL8900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com