我这样做但它返回了其作者字段包含两个特定值和其他值的所有文档。
Document authors = new Document("authors","firstValue")
.append("authors", "secondValue");
MongoCursor<Document> cursor = collection.find(authors).iterator();
try {
while (cursor.hasNext()) {
Document doc = cursor.next();
System.out.println(doc.get("title")+ " " + doc.get("authors"));
}
}
finally {
cursor.close();
}
client.close();
我想只查找仅包含这两个值的文档。
答案 0 :(得分:1)
您正在通过将secondValue
附加到authors
键来覆盖这些值。所以过滤器看起来像{ "authors" : "secondValue" }
。
因此,如果您需要包含仅包含两个值的数组的文档,包括您需要像{ "authors" : [ "firstValue", secondValue" ] }
Document authors = new Document("authors", Arrays.asList("firstValue", "secondValue"))
;