gpt4 book ai didi

regex - Mongodb正则表达式查询字符串的前2个字符

转载 作者:行者123 更新时间:2023-12-05 09:20:34 26 4
gpt4 key购买 nike

在我的一个 mongodb 集合中,我有一个格式为 mm/dd/yyyy 的日期字符串。现在,我想查询 'mm' 字符串。

例如,05/20/2016 和 04/05/2015。

我想获取字符串的前 2 个字符并查询“05”。这样,我将得到的结果应该仅为 05/20/2016。

我怎样才能做到这一点?

谢谢!

最佳答案

对于正则表达式解决方案,以下就足够了

var search = "05",
rgx = new RegExp("^"+search); // equivalent to var rgx = /^05/;

db.collection.find({ "leave_start": rgx });

测试

var leave_start = "05/06/2016",
test = leave_start.match(/^05/);
console.log(test); // ["05", index: 0, input: "05/06/2016"]
console.log(test[0]); // "05"

var search = "05",
rgx = new RegExp("^"+search),
leave_start = "05/12/2016";
var test = leave_start.match(rgx);
console.log(test); // ["05", index: 0, input: "05/06/2016"]
console.log(test[0]); // "05"

另一种选择是使用聚合框架并利用 $substr 运算符提取字段的前 2 个字符,然后是 $match 运算符将根据上面新的子字符串字段过滤文档:

db.collection.aggregate([
{
"$project": {
"leaves_start": 1,
"monthSubstring": { "$substr": : [ "$leaves_start", 0, 2 ] }
}
},
{ "$match": { "monthSubstring": "05" } }
])

关于regex - Mongodb正则表达式查询字符串的前2个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37341919/

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