我正在使用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
查询吗?非常感谢任何帮助/想法/想法!
答案 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
});
});