【发布时间】:2020-06-18 03:42:11
【问题描述】:
我目前在 Java 应用程序上使用 MongoDB 的驱动程序。假设我将以下两个文档存储在一个集合中:
文件 A:
{
"_id": "something",
"key1": "Value1",
"Key2": "Value2",
"Key3": "Value3"
}
文档 B:
{
"_id": "somethingDifferent",
"key1": "Value1",
"Key2": "Value2"
}
现在,我想通过使用 key1 和 key2 的值而不是 _id 从集合中检索 DocumentB 的完全匹配,而不返回 Document A,因为我事先并不知道。
如果我只使用 DocumentB 作为查询(没有 _id),Mongo 也会返回 DocumentA,因为它匹配所有的键和值,忽略 DocumentA 有一个额外的键 (key3) 的事实。
有没有办法在 Mongo 中执行这个“完全匹配”查询?之后我需要进行检查吗?
【问题讨论】:
-
您可以使用
_id(如果您知道它的值)来获得任何文档的完全匹配。文档 B 是否有一个名为“”key3 的字段? -
我事先不知道_id。我只想查询 key1 和 2。