我做的项目只有数据的查询,mongodb数据库是其他公司向里面存放数据和维护。
坑爹是我需要的数据在mongodb中一条记录的很深的层次里面。如图
我需要根据参数,取BMV中VL的第M条记录中的BV的第N个值。
数据很多,如果全取出来,以后的数据处理会很影响效率。
mongodb语句:
find({ "BSN" : "95614", "BMV.VL.BV" : { "$exists" : true }, "CT" : { "$gte" : 1419868800, "$lte" : 1419955200 } }, { "_id" : 0, "CT" : 1, "BMV.VL" : { "$slice" : [0, 1] }, "BMV.VL.BV" : { "$slice" : [4, 1] } })
执行结果:
下面开始解释语句:
find(查询条件, 要显示的内容);
"BMV.VL.BV" : { "$exists" : true },// BMV下面的VL下面的BV字段存在,注意:只是这个字段存在,不保证不为空哦;
"CT" : { "$gte" : 1419868800, "$lte" : 1419955200 }//$gte:小于等于,$gt:小于,$lt:大于,$lte:大于等于;
"BMV.VL" : { "$slice" : [0, 1] }//显示BMV下面VL数组中第一条记录;
"BMV.VL.BV" : { "$slice" : [4, 1] } //显示BV数组中第5个数字;
feilds:{ "$slice" : [m, n]}// 只显示feilds数组中从m开始(不包括m)的n个数据。