我在Mongo馆藏中有名为Product的各种文档。 每个产品都由一组3个键标识。所有这三个键共同构成了一种产品。我在“产品系列”中有数百万种产品。
我的系统存储这些产品的价格。用户在请求中发送多个对象,并在每个对象中发送三个唯一密钥以及产品价格。
我有一个标准,我需要从用户发送的所有产品中查找产品集合中已经存在的任何产品,即使存在一个产品,我也需要将该请求标记为重复并运行我们的一些不同逻辑。
这是一种产品的外观
{
Key: "AGHT1876",
Type: "P3",
KeyType: "key31",
Value: 23.98
}
键“ Key”,“ Type”,“ KeyType”是三个唯一的标识符。
这是我的查询的样子,可以从“产品”集合中查找请求的重复项。
db.Product.findOne({$or: [
{
Key: "JKHT1096",
Type: "P2",
KeyType: "key4"
},
{
Key: "YHU8389",
Type: "P1",
KeyType: "key2"
}
.....
]}]
)
即使我找到一个对象(因此又找到了一个对象),也意味着请求是重复的。
但是问题是请求最多可以包含10,000个对象,查询继续查找所有对象,然后从迭代器返回第一个对象。 我希望,当找到第一个对象时,将其返回并停止在OR查询中寻找其他对象
请提出实现该目标的方法。