【发布时间】:2020-02-17 12:31:01
【问题描述】:
全部,
尝试用 NodeJS 和 Mongoose 实现简单的搜索。
不太确定我哪里出错了,尝试像这样构建查询:
const query = Post.find();
if (value.searchQuery && value.city && value.category) {
console.log("city and category");
query.where({
$or: [{ title: value.searchQuery }, { description: value.searchQuery }],
city: value.city,
category: value.category
});
} else if (value.searchQuery && value.city && !value.category) {
console.log("No category");
query.where({
$or: [{ title: value.searchQuery }, { description: value.searchQuery }],
city: value.city
});
} else if (value.searchQuery && value.category && !value.city) {
console.log("No city");
query.where({
$or: [{ title: value.searchQuery }, { description: value.searchQuery }],
category: value.category
});
} else if (value.searchQuery && !value.city && !value.category) {
console.log("No city and no category");
query.where({
$or: [{ title: value.searchQuery }, { description: value.searchQuery }]
});
基本上,我拥有的是搜索字段,带有城市和类别过滤器,用户可以按一个字段(城市、类别或 searchQuery)或全部或两个字段进行搜索。
P.s 我对猫鼬比较陌生,所以放轻松;)
谢谢!
【问题讨论】:
-
您是否想要和条件与城市、类别和 searchval?请把你的要求说清楚??
-
是的,有几个搜索选项:1) 仅查询 2) 查询 + 城市 3) 查询 + 类别,4) 查询、城市和类别。请注意,查询可以在标题和描述中搜索
-
您想对所有字段进行 AND 条件吗??
-
仅如上所述。 1) 仅查询 2) 查询 + 城市 3) 查询 + 类别 4) 查询、城市和类别
-
必须是部分搜索,如果在标题/描述中有任何单词匹配。如果您知道我的意思,则不必匹配所有单词:) 普通搜索
标签: node.js search mongoose full-text-search mongoose-schema