我尝试使用Java中MongoDB集合上的精确匹配从集合中检索单个文档(第一个)。
藏品如下:
{ "_id": 1, "color": "red", "qty": 5, "vendor": ["Vendor A"] }
{ "_id": 2, "color": "purple", "qty": 10, "vendor": ["Vendor C", "Vendor D"] }
{ "_id": 3, "color": "blue", "qty": 8, "vendor": ["Vendor B", "Vendor A"] }
{ "_id": 4, "color": "white", "qty": 6, "vendor": ["Vendor"] }
我想通过搜索“Vendor”(字符串:keySearch)在供应商标签中:
{ "_id": 4, "color": "white", "qty": 6, "vendor": ["Vendor"] }
但是,我编写的以下代码将返回第一个文档:
Bson filter = Filters.text("\"" + keySearch + "\"");
Document doc = collection.find(filter).first();
我也尝试了下面的方法,但是没有返回任何结果:
Bson elemInArrayMatch = elemMatch("vendor", eq(keySearch));
Document doc = collection.find(elemInArrayMatch).first();
我想在vendor标记上执行精确匹配,也就是说,当keySearch为“Vendor”时,它应该只返回(在本例中)一个文档ID:4.有人能帮帮我吗?
1条答案
按热度按时间2fjabf4q1#
在Java中,您可以执行以下操作:
示例来自mongoDB Java文档here