假设我有一个像这样的Mongoose模型:
var AdSchema = new mongoose.Schema({
vehicleDescription: String,
adDescription: String,
...
});
我想在两个字段中搜索相同的关键字,例如
查找所有WHERE vehicleDescription包含单词TEST,或者adDescription包含单词TEST。
它也需要区分大小写。
目前我可以像这样查询一个字段:
var query = {};
query['adDescription'] = ({ $regex: search.keyWord, $options: 'i' });
但我需要同时搜索这两个字段。
感谢。
答案 0 :(得分:1)
您应该可以使用$or运算符,adModel.find({$or[{"vehicleDescription": /keyword/gi },{"adDescription": /keyword/gi}]})
。
我希望这会有所帮助:)
答案 1 :(得分:0)
通过在{field 1: value 1}, {field 2: value 2},...,{field n: value n}
函数中以find()
格式指定字段和值,您可以同时搜索多个字段。此外,您还可以指定结果必须满足的各种条件,例如AND,OR等。
在您的情况下,Node.js中的示例代码将如下所示
var result = db.collection('AdSchema').find({
$or: [ {vehicleDescription : { $regex: search.keyWord, $options: 'i' }}, { adDescription: { $regex: search.keyWord, $options: 'i' } } ]
});
有关更多详细信息,请参阅MongoDB的documentation page。