MongoDB递归、聚合测试

MongoDB递归、聚合、嵌套测试

1.递归测试

测试目标:递归查询某个用户的全部子用户。
测试环境:MongoDB 3.2.0

插入测试数据

db.categories.insert({_id: "MongoDB", parent: "Databases" } )
db.categories.insert({_id: "dbm", parent: "Databases" } )
db.categories.insert({_id: "Databases", parent: "Programming" } )
db.categories.insert({_id: "Languages", parent: "Programming" } )
db.categories.insert( { _id: "Programming", parent: "Books" } )
db.categories.insert( { _id: "Books", parent: null } )

读取Programming的后代

function findChildren(parent) {
     var myCursor = db.categories.find({"parent":parent});
     while(myCursor.hasNext()) {
          var myJsonString = tojson(myCursor.next());
          print(myJsonString);
          var myJsonObject = JSON.parse(myJsonString);
          findChildren(myJsonObject._id); 
     }
}
findChildren("Programming");

2.聚合测试

给定统计周期和设备列表,对设备数据进行统计。

db.car.insert({deviceId:'111111',fuelConsum:5,mileage:1000,createTime:"2011-10-29 0:0:1"})
db.car.insert({deviceId:'222222',fuelConsum:6,mileage:2000,createTime:"2012-10-29 0:0:1"})
db.car.insert({deviceId:'333333',fuelConsum:7,mileage:3000,createTime:"2013-10-29 0:0:1"})
db.car.insert({deviceId:'444444',fuelConsum:8,mileage:4000,createTime:"2014-10-29 0:0:1"})
db.car.insert({deviceId:'555555',fuelConsum:9,mileage:5000,createTime:"2015-10-29 0:0:1"})
db.car.insert({deviceId:'666666',fuelConsum:10,mileage:6000,createTime:"2016-10-29 0:0:1"})

统计平均油耗
统计周期:2012-2016年
统计设备列表:[“111111”, “222222”, “333333”, “444444”, “555555”]

var deviceList = ["111111","222222","333333", "444444", "555555"];
db.car.aggregate([
  {$match:{"$and":[
    {"createTime":{"$gt":"2012-1-1 0:0:0"}},
    {"createTime":{"$lt":"2016-12-31 0:0:0"}},
    {"deviceId":{$in:deviceList}}]}},
  {$group:{_id:null,avg_fuel:{$avg:"$fuelConsum"}}}
])
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容