MongoDB - 按关键字查找 - 不同的数据类型

时间:2017-04-03 05:55:32

标签: mongodb

我正在使用MongoDB作为我的数据库引擎,并尝试根据给定的关键字执行find查询。如果所有数据字段都是String的类型,那么我可以像这样执行find查询:

test.find({
    $or: [
        {'field1': {'$regex': req.body.keyword} },
        {'field2': {'$regex': req.body.keyword} }
    ]})
    .then(function(records) {
        if(records.length >= 1) {
            return res.json({error: false, message: null, data: records});
        } else {
            return res.json({error: false, message: "No results", data: null});
        }
    });

但是,我有一些字段类型为Number$reqex的字段不能与String以外的任何其他类型一起使用。

甚至可以对不同的数据类型执行find查询吗?非常感谢任何帮助/想法/想法!

2 个答案:

答案 0 :(得分:0)

尝试使用.toString()方法将数字转换为字符串,然后将其传递给$regex运算符。

答案 1 :(得分:0)

首先回答更一般的问题,是的,可以对不同的数据类型执行查找,而不仅仅是字符串。 $ regex用于字符串上的模式匹配。

数字上的模式匹配,这似乎是您正在寻找的,在这篇文章中演示: MongoDB Regex Search on Integer Value

这是一个可能有帮助的特定示例...插入文档然后使用$ where进行匹配。结果在最后一行:

$(document).ready(function(){
  $('.forHide').on('click', function(){
    $('.forHide').addClass('hidden'); // hides all
    $(this).removeClass('hidden'); // current hide deleted
  });
});