好文档 - 专业文书写作范文服务资料分享网站

MongoDB实操指南 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

如果要查询name字段中以“白”开头的,代码如下:

4.2 Null值处理

如果我们想找出集合中某字段值为空的文档,如何查询呢?其实和我们之前的条件查询是一样的,条件值写为null就可以了。

我们现在集合中的文档都是没有空值的,为了方便测试,现在我们将数据做些修改: 将“唐僧”的address改为空

再次查询:

我们会发现不仅会显示“唐僧”这条文档,之前因为修改导致address字段丢失的那条记录也出现了。也就是说,这种查询会查询出该字段为null的以及不存在该字段的文档记录。

4.3大于小于

<, <=, >, >= 这个操作符也是很常用的,格式如下

db.collection.find({ \大于: field > value db.collection.find({ \小于: field < value

db.collection.find({ \大于等于: field >= value db.collection.find({ \小于等于: field <= value

示例:查询年龄大于等于20岁的学员记录

4.4不等于

不等于使用$ne操作符。

示例:查询sex字段不为“男”的文档

4.5判断字段是否存在

判断字段是否存在使用$exists操作符。 示例:查询所有含有address字符的文档。

示例:查询所有不含有address字符的文档。

4.6包含与不包含

包含使用$in操作符。

示例:查询student集合中age字段包含20,25,30的文档

示例:查询student集合中age字段不包含20,25,30的文档

4.7统计记录条数

统计记录条件使用count()方法。 示例:查询student集合的文档条数。

示例:查询student集合中age字段小于等于20的文档条数。

4.8 条件连接--并且

我们如果需要查询同时满足两个以上条件,需要使用$and操作符将条件进行关联。(相当于SQL的and)

格式为:$and:[ { },{ },{ } ]

示例:查询student集合中age大于等于20 并且age小于30的文档

4.9 条件连接--或者

如果两个以上条件之间是或者的关系,我们使用$or操作符进行关联,与前面$and的使用方式相同

格式为:$or:[ { },{ },{ } ]

示例:查询student集合中sex为女,或者年龄小于20的文档记录

5.java连接MongoDB

5.1查询文档

5.1.1查询全部记录

(1)创建maven工程mongoDBDemo ,引入依赖。 org.mongodb mongodb-driver 3.4.1 (2)编写代码,遍历student集合所有数据: MongoClient client=new MongoClient();//创建连接对象 MongoDatabase database = client.getDatabase(\);//获取数据库 MongoCollection collection = database.getCollection(\);//获取集合 FindIterable list = collection.find();//获取文档集合 for( Document doc: list){//遍历集合中的文档输出数据 } System.out.println(\+ doc.getString(\) ); System.out.println(\+ doc.getString(\) ); System.out.println(\+ doc.getDouble(\) );//默认为浮点型 System.out.println(\+ doc.getString(\) ); System.out.println(\); MongoDB的数字类型默认使用64位浮点型数值。{“x”:3.14}或{“x”:3}。对于整型值,可以使用NumberInt(4字节符号整数),{“x”:NumberInt(“3”)} 或NumberLong(8字节符号整数){“x”:NumberLong(“3”)}

5.1.2匹配查询

MongoDB使用BasicDBObject类型封装查询条件,构造方法的参数为key 和value .

示例:查询student集合中name为猪八戒的文档 //构建查询条件 BasicDBObject bson=new BasicDBObject(\, \猪八戒\); //....遍历集合 FindIterable list = collection.find(bson);//获取文档集合

5.1.3模糊查询

构建模糊查询条件是通过正则表达式的方式来实现的

(1)完全匹配Pattern pattern = Pattern.compile(\(2)右匹配Pattern pattern = Pattern.compile(\(3)左匹配Pattern pattern = Pattern.compile(\(4)模糊匹配Pattern pattern = Pattern.compile(\示例:模糊查询student集合中address 中含有洞的文档记录

//模糊查询:like %洞% Pattern queryPattern = Pattern.compile(\洞.*$\); BasicDBObject bson=new BasicDBObject(\, queryPattern); FindIterable list = collection.find(bson);//获取文档集合 //....遍历集合 5.1.4大于小于

在MongoDB提示符下条件json字符串为{ age: { $lt :20 } } ,对应的java代码也是BasicDBObject 的嵌套。

示例:查询student集合中age小于20的文档记录 //查询年龄小于20的 BasicDBObject bson=new BasicDBObject(\, new BasicDBObject(\,20)); FindIterable list = collection.find(bson);//获取文档集 //....遍历集合 5.1.5条件连接--并且

示例:查询年龄大于等于20并且小于30的文档记录 //查询年龄大于等于20的 //查询年龄小于30的 BasicDBObject bson2=new BasicDBObject(\, new BasicDBObject(\,30)); //构建查询条件and BasicDBObject bson=new BasicDBObject(\, Arrays.asList(bson1,bson2) ); BasicDBObject bson1=new BasicDBObject(\, new BasicDBObject(\,20)); 5.1.6条件连接--或者

示例:查询年龄小于等于20或者性别为女的文档记录 BasicDBObject bson1=new BasicDBObject(\, new BasicDBObject(\,20)); BasicDBObject bson2=new BasicDBObject(\, \女\); //构建查询条件or BasicDBObject bson=new BasicDBObject(\, Arrays.asList( bson1, bson2 ) );

MongoDB实操指南 - 图文

如果要查询name字段中以“白”开头的,代码如下:4.2Null值处理如果我们想找出集合中某字段值为空的文档,如何查询呢?其实和我们之前的条件查询是一样的,条件值写为null就可以了。我们现在集合中的文档都是没有空值的,为了方便测试,现在我们将数据做些修改:将“唐僧”的address改为空<
推荐度:
点击下载文档文档为doc格式
612j65wqsi0088t3x4ji0cqsi0v0jd00p3w
领取福利

微信扫码领取福利

微信扫码分享