通过Mongoose模式存储正则表达式

时间:2019-06-20 00:32:49

标签: node.js mongodb mongoose mongoose-schema

我如何通过Mongoose模式存储正则表达式,然后由Mongoose查询为正则表达式?

//regexmodel.js 
var mongoose = require('mongoose')

var RegexSchema = new mongoose.Schema({
 regex: {
  type: REGEXP //How do i get this to store regex
 }
})

var Regex = mongoose.model('Regex', RegexSchema)

module.exports = Regex

//regexController.js
var regex= new Regex({
  regex: /.*/
})

regex.save(function(err, alert) {
 if (err) {
  res.send({success: false, message: err.message})
 } else {
  res.send({success: true, message: "Created Regex"})
 }
})

请记住,这都是伪代码,不是我实际尝试的任何东西,但这样做的目的是使该值与任何东西都匹配。我需要在数据库而不是查询端完成此操作,因为我知道您可以使用正则表达式查询猫鼬以匹配,但它不适合我的用例。

1 个答案:

答案 0 :(得分:1)

由于您的问题更多是理论性的,因此答案是,您可以这样做。

您拥有的选项:

  1. 自从猫鼬supports custom types起,您就可以自己实现该类型。
  2. 您可以简单地使用已经为您完成工作的已开发插件之一。例如https://github.com/mongoosejs/mongoose-regexp。 我敢肯定,如果您搜索gitHub,可能会发现以下内容之一 这些。