我正在尝试查找是否存在匹配2个过滤器的文档:
- licenseType =“试用版”
- machineId对象至少包含一个与“ABC”匹配的值
通常,在JavaScript中,我会做这样的事情:
Object.values(machineId).includes("ABC")
但是我需要在mongoose的findOne()
或exists()
的过滤器选项中放置类似的东西。
我的文档看起来像这样:
{
licenseType : "Trial",
machineId : {
0: null,
1: "ABC",
2: "null",
...
},
}
machineId
是一个包含可变数量值的对象。
我的查询现在看起来像这样:
const licenses = await License.exists({
machineId: { $in: ["ABC"] },
licenseType: "Trial",
})
但它不起作用。
**如何查找machineId
的值是否等于"ABC"
?**如果使用javascript或MongoDB提示符完成,是否有不同的方法?我希望能够在我的代码之外重现此查询。
1条答案
按热度按时间2lpgd9681#
我使用的正则表达式是大小写敏感的,它将返回
boolean
,如果你想让对象返回,你可以使用findOne
代替exists
。如果这是你要找的,请告诉我。