记一次迭代中mongodb数据查询

 

项目背景:现项目主要是做关于机器人的调度系统,涉及到web端、移动端、小程序及服务端和实体机器人端;

迭代背景:设备演示界面需要展示设备当天所有的路径:历史路径+实时路径

记录方向:mongodb集合查询

记录时间:20210119

========================================

 

mongodb属于非关系型数据库,存储的格式与关系型数据库有质的区别。在测试过程中遇到了需要查询mongodb数据的的需求,学习了一下mongodb

的查询方式,并将实际使用到的查询方式记录于此;主要的方式主要是条件查询:单条件、多条件、and、or等方式;

在网上找了一张mongodb与关系型数据库之间的查询方式的区别表,该表转载自菜鸟教程

 

操作格式范例RDBMS中的类似语句
等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'
小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50

以下是自己在测试过程中实际用到的查询组合:单条件、多条件、and、or等方式,主要把这几个基础的查询方式掌握后,其他的非规则性的特殊要求直接百度就可以得知相关的命令;

///1、单条件查询
db.device_status_history.find({"device_id": "00000000000000000010"});

///2、单条件查询及投影
db.device_status_history.find({"device_id": "00000000000000000010"},{"device_id":1,"status_count":1});

///3、条件查询:小于、小于等于、大于、大于等于、不等于
db.device_status_history.find({"status_count":{"$gte":NumberInt("60")}});///大于等于,后面的类型可以直接在集合中查看

///4、and条件1,传入多个key,每个key以逗号隔,统计数量    
db.device_status_history.find({"$and":[{"device_id": "00000000000000000010"},{"status_count":{"$gt":NumberInt("60")}}]}).count();

///5、历史路径:、查询某个时间范围内的指定设备的数据
db.device_status_history.find({"$and":[{"create_time":{"$gt":ISODate("2021-01-18T00:00:00Z")}},{"create_time":{"$lt":ISODate("2021-01-19T00:00:00Z")}},{"device_id": "00000000000000000013"}]})

///6、or条件查询
db.device_status_history.find({"$or":[{"device_id": "00000000000000000010"},{"device_id": "00000000000000000013"}]});

 

posted @ 2021-01-19 10:57  小菜鸡1枚  阅读(118)  评论(0)    收藏  举报