使用Java。我有两个.find()查询,我想要组合并获得一个包含两个查询结果的Document。我已经设法像这样单独创建它们。请注意,查询位于两个不同的顶级字段中。下面的最后一个语句是对具有两个条件的同一字段的查询。
$rules = array(
'st' => 'required',
'capt' => 'required|numeric|same:' . $getsCapt
);
和
FindIterable<Document> iterable = db.getCollection("1dag").find(new Document("id", "10"));
我找不到任何关于此的文档。 这是我应该使用“$ and”或“$ where”语句吗?
编辑是这样做的吗?
FindIterable<Document> iterable2 = db.getCollection("1dag").find(
new Document().append("timestamp", new Document()
.append("$gte",startTime)
.append("$lte",endTime)));
答案 0 :(得分:1)
您的查询将完美无缺。
查询db.inventory.find({id:{$eq:10}})
相当于db.inventory.find({id: 10})
简化您的查询:
FindIterable<Document> iterable7 = db.getCollection("1dag").find(
new Document().append("timestamp", new Document()
.append("$gte", startTime)
.append("$lte", endTime))
.append("id",10));
答案 1 :(得分:1)
为以下mongo shell查询创建等效的Java查询
db.getCollection("1dag").find({
"id": "10",
"timestamp": {
"$gte": 1412204098,
"$lte": 1412204099
}
})
您应该通过在查询文档中添加条件来为多个查询条件指定logical conjunction (AND):
FindIterable<Document> iterable = db.getCollection("1dag").find(
new Document("id", "10")
.append("timestamp",
new Document("$gte", 1412204098)
.append("$lte", 1412204099)
)
);