Mongodb中的like查询

假如需要查找的字符串为“s”,则可以用以下4种方法:

  1. db.tables.find({"name":/s/})
  2. db.tables.find({"name":/^s/})
  3. db.tables.find({"name":/s.*/})
  4. db.tables.find({"name":/.s.*/})

下面就分析下这几种查询的对应结果有什么不同:

1)db.city.find( {"region":/.新.*/})

共765条记录:包含了【高新技术。高新区,虎丘。渝北区(含北部新区)】
【注:由结果可以看出所查 字符前面必须有字符,相当于:db.city.find({"region": /.新./}),也相当于db.city.find({"region": /.新/})】

-----------------------------------------------------------------------------

2)db.city.find( {"region":/^新/})

共592条记录:包含了【新华。新洲。新都。新城。新区】
【注:由结果可以看出,此查询 必须以所查字符开始

-----------------------------------------------------------------------------

3)db.city.find({"region":/新.*/})


共1357条记录:记录包含了【新华。高新技术。渝北区(含北部新区)。高新区,虎丘】
【注:由结果可以看出 前面字符可以有也可以没有,相当于:db.city.find({"region": /新/})】

-----------------------------------------------------------------------------


最后再分析下记录的结果,由上面三种查询可以看出,前两个查询的结果和正好等于最后一种的查询结果,这与注解完全符合。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB ,没有像 SQL 的 "LIKE" 操作符一样直接实现模糊查询。但是,我们可以使用正则表达式来实现类似的功能。 在 Java 使用 MongoDB 进行右侧模糊查询,我们可以通过构建一个正则表达式来实现。下面是一个示例代码: ```java import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class Main { public static void main(String[] args) { // 连接到 MongoDB MongoClient mongoClient = new MongoClient("localhost", 27017); // 认证(如果需要) MongoCredential credential = MongoCredential.createCredential("username", "database", "password".toCharArray()); MongoDatabase database = mongoClient.getDatabase("database"); // 获取集合 MongoCollection<Document> collection = database.getCollection("collectionName"); // 构建正则表达式 String keyword = "example"; String regexPattern = String.format(".*%s$", keyword); // 构建查询条件 Document query = new Document("fieldName", new Document("$regex", regexPattern)); // 执行查询 FindIterable<Document> result = collection.find(query); // 遍历结果 for (Document document : result) { // 处理查询结果 System.out.println(document.toJson()); } // 关闭连接 mongoClient.close(); } } ``` 在上述代码,我们首先连接到 MongoDB,然后获取指定的集合。接下来,我们通过构建正则表达式 `.*example$`,其 `example` 是我们想要匹配的关键字,并且右侧匹配。然后,我们使用 `$regex` 操作符将正则表达式作为查询条件传递给 `collection.find()` 方法,执行查询并返回结果。最后,我们可以对查询结果进行处理或输出。 需要注意的是,使用正则表达式进行模糊查询可能会对查询性能产生一定的影响,特别是对于大型数据集。因此,建议在需要模糊查询时谨慎使用,并根据实际情况进行性能测试和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值