MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,可以存放文本型数据。
代码如下(示例):
// collection 为集合的名称类似于mysql 的表名称 db.collection.find(); db.collection.find({“name”:”cat”});代码如下(示例):
db.object(对象).find({“属性”:{“$比较符”:value}); 比较符 : 大于$gt,大于等于$gte,小于$lt,小于等于$lte,等于$eq,不等于$ne; 例子: db.collcetion.fin({“age”:{“$gt”:“18”}}); // 取年龄大于18的学生代码如下(示例):
db.collection.find(). projection({}) .sort({ _id: -1 }).limit(1000);根据“_id”排序,因为mongo的“_id”自带索引功能,所以查询相对更快一点,limt做页数限制,或者可以用db.collection.find({},{“title”:1,_id:0}).limit(1).skip(10),做分页操作,每页显示10条数据,当前第1页。
代码如下(示例):
db.user.aggregate([ {{'$group' : { '_id' : { 'name' : } , , 'count' : { '$sum' : 1}}}")) } ]); 查询这个集合中的name 的分组和数量,$name中的name 为属性名称,count 为自定义变量。 {$match:{“age”: 22}}; 可以加上匹配条件用年龄等于22的筛选条件。注意:mongo查询的时候是根据key查询的,所以mongo 的key不能重复,也就是自定义变量的时候必须不一样,否则,参数会提示参数不唯一不能执行查询。
mongo查询的时候,是把数据先放到内存里面,数据量过大有内存限制问题,有的查询可能出错,可以选择allowDiskUse设置为true,由于驱动问题,或者版本不兼容,有的查询需要添加游标类型,聚合的输出格式为OutputMode.CURSOR。
mongo 查询相对于关系型数据库,查询的更快,但数据量过大,可能导致查询有点慢,这个时候就应该给查询的字段添加索引限制,db.colletcion.createIndex(“time”:-1),这个是给查询的时候根据time倒序的语句以time 做索引。