mongoose - 使用 Mongoose ORM 创建搜索查询
问题描述
我正在尝试使用 Mongoose ORM 创建搜索查询。搜索很能找到零件号、零件描述或 NSN 号。但是,我不知道用户要搜索这三个中的哪一个。我不确定如何最好地实施此解决方案,或者是否可以使用 Mongoose。
let mongoose = require('mongoose');
let mongooseUniqueValidator = require('mongoose-unique-validator');
// Global variables
let Schema = mongoose.Schema;
// Define part schema
let schema = new Schema({
// _id: mongoose.Schema.Types.ObjectId,
nsn: { type: String, trim: true, unique: true, minlength: 1 },
partList: { type: String, trim: true },
description: { type: String, trim: true },
dataSheet: [{
mrc: { type: String, trim: true },
tipText: { type: String, trim: true },
category: { type: String, trim: true },
categoryDescription: { type: String, trim: true },
url: { type: String, trim: true },
}],
category: { type: String, trim: true, minlength: 1 },
subcategory: { type: String, trim: true, minlength: 1 },
filter: { type: String, trim: true, minlength: 1 },
url: { type: String, trim: true },
createdAt: Date,
updatedAt: Date
})
// plugin middleware
schema.plugin(mongooseUniqueValidator);
// create indexes
schema.index({nsn: 'text', partList: 'text', description: 'text'});
// Export schema
module.exports = mongoose.model('Part', schema); ```
``` let searchString = req.params.search
Part.find({$text: {$search: searchString}})
.then(part => {
if (part.length > 0) {
res.json({
confirmation: 'success',
part: part
});
} else {
res.status(204)
.json({
})
}
})
.catch(err => {
res.status(500)
.json({
confirmation: 'fail',
message: err.message
});
}) ```
解决方案
推荐阅读
- modeling - OpenModelica (v1.13.0):FMU 导出损坏 - static.log:没有这样的文件或目录
- sql - 以 JSON 格式发送数据时,日期更改为前一天
- html - 通过使用 display: table-cell 用于表格行,display:block 用于 td 表格不起作用
- python - 使用 XGBoost 进行超参数网格搜索 - 评分函数与评估指标
- android - Android BottomsheetFragment Viewpager Fragment 没有视图
- php - 带有 PHP 解析器的 PSR-2 PrettyPrinter
- grafana - 我可以在 Grafana Graph Metrics 中使用数学方程式吗?
- java - 通过 POSIX AIO 或 Java 中的 Windows 重叠 IO 进行异步文件 I/O
- angular - Angular 中的 Git 工作流 npm 依赖项版本控制
- ms-access - 在查询中添加 IF 条件语句