`
什么_况
  • 浏览: 53697 次
文章分类
社区版块
存档分类
最新评论

MongoDb查询

阅读更多
最近学习MongoDB,研究官方文档java版本,以下是自己的理解(内容参考官方文档):
官方文档地址:https://docs.mongodb.org/getting-started/java/query/

遍历一个collection有两种方法:
以document为单位遍历一个collection:
1、可用mongodb自带的遍历方式
FindIterable inIterable = collection.find();
inIterable.forEach(new Block<Document>() {

@Override
public void apply(Document arg0) {
System.out.println(arg0);
}
});

这里用到了匿名内部类的方式。

2、用MongoCursor+iterater
MongoCursor cursor = collection.find().iterator();
System.out.println(collection.count());
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
cursor.close();

两种方式主要依赖于find()方法。find()方法有许多可用参数。也能将bson当做一个参数传入以找到具体的bson对象。

查询:
1、在find中传入一个document对象参数以查询。用以上方式可以遍历。
例:
collection.find(new Document(key,value));

此行代码即可找到connection中所有以该key和value的bson对象。

2、也可利用mongodb中的static方法eq
例:
connection.find(eq("name", "XXX"));

注意:
我用的eclipse保存时自动组织导入功能。使用该方法时并不会自动导入需要的包,此时需要自己手动import。引入语句:
import static com.mongodb.client.model.Filters.eq;
若还用有其余static方法。可将eq改成*。
在官方文档里面还有一种查询方式是类似
connection.find(eq("address.name", "XXX"));

其中有个'.'操作符,经过试验猜测是当该bson对象的值也是一个document时,该document的key

3、
collection.find(gt("age", 24));

此操作用于找到集合中age属性大于24的document。不包含24;需要import import static com.mongodb.client.model.Filters.gt;
collection.find(new Document("age",new Document("$gt",23)));

此操作与上句相同效果。无需import
注意此方式查询是传入一个document的第二个参数是一个document对象
如果对比属性是英文,则按照字典序查询。中文的未测试,待完善。。
collection.find(lt("age", 24));

lt方法表示属性值小于24的document。用法相同。

4、逻辑与
collection.find(
        new Document("name", "XXX").append("age", "10086"));

可以尽量详细的传入一个document对象,用于查询符合该document对象在collection里所有元素的值的document。
collection.find(and(eq("name", "XXX"), eq("age", "10086"))

可以用static方法 and("","");在and参数里可以再填入两个filter,表示筛选同时满足两个filter的document。同样记得import 该and方法。

5、逻辑或
collection.find(new Document("$or", asList(new Document("name", "XXX"),new Document("age", "10086"))));

在此语句中在find方法里面传入一个document对象,第一个参数为"$or",表示执行或方法,第二个参数为一个list,将所有条件传入这个list里面。
collection.find(or(eq("name", "XXX"), eq("age", "10086")));

相似的,也能用静态方法or表示筛选满足其中某个条件的document
0
1
分享到:
评论

相关推荐

    MongoDB查询练习题及答案

    MongoDB 是一种流行的 NoSQL 数据库,以文档型数据存储为主,支持丰富的查询表达能力。在本题中,我们将探讨 MongoDB 的查询操作,基于提供的 `user1` 和 `user2` 文档进行练习。 首先,让我们熟悉一下 `db.users....

    mongodb查询工具Studio3T

    如果您不习惯MongoDB查询语言,那么Studio3T的SQL查询可能会派上用场。编写SQL选择表达式和SQL联接来查询mongodb,并查看SQL查询如何转换为MQL——这是一个很好的工具。SQL查询语言

    mongoDB-查询语法

    MongoDB 查询语法详解 MongoDB 是一个基于NoSQL的数据库,具有高效、灵活、易扩展等特点。在 MongoDB 中,查询语法是非常重要的一部分,本文将对 MongoDB 的查询语法进行详细的介绍。 基本查询语法 在 MongoDB 中...

    MongoDB查询性能验证及优化

    本文将深入探讨如何验证MongoDB查询性能并进行优化。 首先,我们需要理解MongoDB的查询机制。MongoDB使用查询解释器来解析和执行查询操作。通过`explain()`方法,我们可以获取查询的执行计划,包括扫描的文档数量、...

    mongodb查询性能.rar

    首先,我们要了解MongoDB查询的基本原理。MongoDB使用查询解释器来解析查询语句,并生成执行计划。执行计划决定了数据如何被检索,包括使用的索引、数据读取顺序等。你可以通过`db.collection.explain()`方法来查看...

    MongoDB查询指定域语言Rogue.zip

    一个是用Scala编写的MongoDB查询指定域语言 示例代码: val query = Venue where (_.venuename eqs "Starbucks")query.count()query.countDistinct(_.mayor)query.fetch()query.fetch(n)query.get() // equivalent...

    《MongoDB实战》第2版-第5章-Mongodb查询1

    本章主要内容包括理解查询一个电子商务数据模型、MongoDB查询语言的细节、查询选择器及其选项。 MongoDB查询语言不同于传统的SQL,而是采用类JSON的查询语法。书中通过实际的电子商务场景来解释查询操作,如商品、...

    一个简单的沙箱来测试和共享MongoDB查询.zip

    本压缩包"一个简单的沙箱来测试和共享MongoDB查询.zip"显然是为了提供一个环境,让用户能够安全地尝试和分享MongoDB查询,而不会影响到生产环境。 在“mongoplayground_dev.zip”中,很可能是包含了一个在线MongoDB...

    mongodb查询数据返回JSP

    mongodb查询数据,显示DBCursor.next这种形式,那如何把值带到JSP显示呢? 上传的是一个项目Demo,导入可以直接运行,当然也可以直接查看其中的代码。 项目是使用jquery.ajax显示后台返回的Json串。 若再详细了解...

    idea mongodb插件

    4. 查询执行:在IDEA内直接编写和执行MongoDB查询语句,实时查看结果,支持复杂的聚合框架操作。 5. 脚本执行:支持运行JavaScript脚本,对数据库进行更复杂的操作。 6. 导入导出:可以将数据导入或导出为JSON、CSV...

    mongodb管理工具

    - 查询构建器:帮助用户构建和执行MongoDB查询语句。 - 监控工具:显示服务器状态,如内存使用、磁盘空间和操作统计等。 在实际工作中,根据需求和环境,开发者和DBA可能会选择其中一个或两者结合来管理MongoDB...

    MongoDB查询语言:分片处理

    MongoDB查询语言:分片处理

    MongoDB查询语言:备份与恢复

    MongoDB查询语言:备份与恢复

    Thinkphp使用mongodb数据库实现多条件查询方法

    在Thinkphp中使用MongoDB进行多条件查询时,需要对框架提供的驱动进行一定的修改以适应MongoDB的查询方式。 在Thinkphp中实现多条件查询时,可以使用框架提供的查询构建器(Query Builder),但是当涉及到MongoDB的...

    MongoDB基本查询.pdf

    本篇资料主要涵盖了MongoDB的基本查询操作,包括查询数据、格式化输出、筛选特定文档以及使用比较运算符进行查询。 首先,MongoDB 中用于查询数据的核心命令是 `find`,正如题目中所提及的,其基本语法格式为 `db....

    MONGODB查询:使用MONGODB的电影数据库

    一、MongoDB查询基础 1. 查询文档:在MongoDB中,查询数据是通过`find()`方法实现的。例如,如果你想从"movies"集合中找到所有的文档,你可以使用以下命令: ```javascript db.movies.find(); ``` 2. 条件查询...

    MongoDB查询优化技术研究_葛宇锋.caj

    MongoDB查询优化技术研究_葛宇锋.caj

    sift.js, 使用mongodb查询筛选数组.zip

    sift.js, 使用mongodb查询筛选数组 使用mongodb查询验证对象的&筛选器数组 扩展文档 checkout http://docs.mongodb.org/manual/reference/operator/query/插件功能:Support

    node-monquery, 面向人类的mongodb查询语言.zip

    node-monquery, 面向人类的mongodb查询语言 monquerylucene为人类( 还有 ferrets ) 提供了基于字符串的mongodb查询语言。安装$ npm install monquery为什么?更好的搜索/日志过滤的用户体验编写JSON查

    mongo-queries:一些 MongoDB 查询

    在脚本中编译的一些 MongoDB 查询..如何运行脚本/秒: 运行 mongoDB 服务器: mongod --port 27017 导入json文档: mongoimport -db testing --collection people res/people.json --jsonArray 在本地运行脚本: ...

Global site tag (gtag.js) - Google Analytics