gpt4 book ai didi

regex - Mongoose 在多列中使用正则表达式进行搜索

转载 作者:太空宇宙 更新时间:2023-11-03 22:42:44 25 4
gpt4 key购买 nike

我有一个 Mongoose 模型,其架构定义为 -

var campusNotesSchema = mongoose.Schema({
noteId:{type:String, unique:true, default: uuid.v4()},
title: {type:String, required:'{PATH} is required!'},
uploader:{type:String,required:'{PATH} is required!'},
department:{type:String},
college:{type:String},
author:{type:String,required:'{PATH} is required!'},
actualFileName: [String],
storedFileName: [String],
subject: {type:String},
description: {type:String},
details: {type:String},
date: {type:Date, default: Date},
tags: [String]
});

模型定义为 -

var Campusnotes = mongoose.model('Campusnotes', campusNotesSchema);

现在我想从请求对象参数中搜索标题、标签、描述字段,例如

if(req.query.searchText){        
Campusnotes.find({title:new RegExp(searchText,'i'),description:new RegExp(searchText,'i')}).exec(function(err, collection) {
res.send(collection);
})
}

现在我如何确保在标题或描述中找到该术语的任何结果也都包含在内,而不仅仅是两者中都存在的结果。另外,我如何在标签数组中搜索匹配的字符串

最佳答案

您可以在 mongoose 中使用 $or 运算符来返回任意匹配的结果
$或 http://docs.mongodb.org/manual/reference/operator/query/or/

Campusnotes.find({'$or':[{title:new RegExp(searchText,'i')},{description:new RegExp(searchText,'i')}]}).exec(function(err, collection) {
res.send(collection);
})

要在数组中搜索匹配的字符串,您需要使用 mongo 的 $in 运算符:

$:http://docs.mongodb.org/manual/reference/operator/query/in/

关于regex - Mongoose 在多列中使用正则表达式进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24593423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com