【发布时间】:2020-05-22 09:07:42
【问题描述】:
我正在尝试返回所选字段数组中至少有一个元素与查询数组匹配的文档。
我尝试了以下查询:
const match_equipment = await studios.find({equipment: {$eleMatch:{$in: ["mic","amp"]}}});
const match_equipment = await studios.find({equipment: {$all: ["mic","amp"]}});
第一个查询给我“db query failed error”第二个给我“no result found”。
示例文档:
{
"_id": {"$oid": "5ec5d38be97c8869bee29e78"},
"equipment": ["guitar", " mic", " amp"],
"studio_name": "Best recordings",
"email": "changed@gmail.com",
"address": "34 harming st. Brunswick",
"postcode": "3056",
"price": "50",
"__v": {"$numberInt": "0"},
"unavalibility": [
{
"times": [{"$numberInt": "13"}],
"_id": {"$oid": "5ec610e47cf2fb4e84ba0c54"}, "date": {"$date": {"$numberLong": "1591920000000"}}
}
]
}
【问题讨论】:
-
第二个应该可以工作,你可以在这里看到一个工作示例 - mongoplayground.net/p/l8tqUZY5xAU
-
请不要将图像用于代码或文本,而是将相关的代码片段或列表添加到您的问题中。
-
对不起第一次代码;不知道它应该如何工作。我将复制粘贴我的代码
-
@PuneetSingh 谢谢!我发现了问题,我的文档实际上在“mic”之前有一个空格作为“mic”。我会尝试添加正则表达式!
-
抱歉后续问题,我应该如何为模糊搜索添加正则表达式?我对它不是很熟悉,但试过这没有用。 stackoverflow.com/questions/38421664/… 例如。当查询有“drums”“drumset”时,如果我想要带有“DRUM”或“drum”的文档都可以找到?
标签: javascript jquery node.js mongodb searchbar