是否需要锁定 mongodb 中的每个文档?
Is it required to lock every document in mongodb?
我是 MongoDB 的新手。我正在经历这个 link:
https://docs.mongodb.org/getting-started/java/query/
我的问题是:
的目的是什么
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
谁能解释一下什么是 Block
和 apply
?
我只想读取 mongodb 中的数据。我不想更改其中的数据。
代码只是读取 Restaurant 集合中的所有文档并在控制台上打印出每个文档。
在迭代期间操作 Documents
是可选的方式。
Block
是一个 Functional Interface
(Java 接口),它允许您将 Document
修改为自定义对象(add/edit/remove 数据,初始化您的自定义对象等等...)
因此,Block
只有 1 个名为 apply
的方法,您需要在其中实现 Document
操作。在迭代过程中,forEach
自动调用 apply
方法。
您可以阅读有关功能接口的更多信息:https://dzone.com/articles/introduction-functional-1
编辑:
为了更优雅地使用forEach,你可以这样做:
创建新的 class 实现 Block<Document>
。因此,对于 forEach 方法,您可以传递 class 实例 (iterable.forEach(new DocumentImpl())
).
public class DocumentImpl implements Block<Document> {
public void apply(Document arg0) {
//Do stuff here
}
}
不推荐!已弃用。不要使用 MongoDatabase db
,而是使用 DB db
它与 DBObject
接口一起工作的地方。因此,一旦您使用 find
进行查询,您将获得 DBCursor
。您可以通过 .next()
迭代 DBCursor 并获得 DBObject
个文档。
使用 Spring-Data,它更具可读性,并且可以在 MongoDB 和 POJO 之间自动映射您的对象。 http://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/repository/MongoRepository.html
我是 MongoDB 的新手。我正在经历这个 link:
https://docs.mongodb.org/getting-started/java/query/
我的问题是:
的目的是什么iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
谁能解释一下什么是 Block
和 apply
?
我只想读取 mongodb 中的数据。我不想更改其中的数据。
代码只是读取 Restaurant 集合中的所有文档并在控制台上打印出每个文档。
在迭代期间操作 Documents
是可选的方式。
Block
是一个 Functional Interface
(Java 接口),它允许您将 Document
修改为自定义对象(add/edit/remove 数据,初始化您的自定义对象等等...)
因此,Block
只有 1 个名为 apply
的方法,您需要在其中实现 Document
操作。在迭代过程中,forEach
自动调用 apply
方法。
您可以阅读有关功能接口的更多信息:https://dzone.com/articles/introduction-functional-1
编辑:
为了更优雅地使用forEach,你可以这样做:
创建新的 class 实现
Block<Document>
。因此,对于 forEach 方法,您可以传递 class 实例 (iterable.forEach(new DocumentImpl())
).public class DocumentImpl implements Block<Document> { public void apply(Document arg0) { //Do stuff here } }
不推荐!已弃用。不要使用
MongoDatabase db
,而是使用DB db
它与DBObject
接口一起工作的地方。因此,一旦您使用find
进行查询,您将获得DBCursor
。您可以通过.next()
迭代 DBCursor 并获得DBObject
个文档。使用 Spring-Data,它更具可读性,并且可以在 MongoDB 和 POJO 之间自动映射您的对象。 http://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/repository/MongoRepository.html