如何从mongodb中以某些文本开始且仅以数字结尾的条目中获取数字数组?

时间:2018-07-17 10:41:49

标签: mongodb mongodb-query spring-data-mongodb

我在mongodb中存储了这样的文档:

{
    name: "1234book"
}
{
    name: "book8"
}
{
    name: "book2"
}
{
    name: "book2some6text"
}
{
    name: "smallbook2some6text"
}
{
    name: "smallbook22"
}

如何获取以某些文本开头且仅以数字结尾的条目?

例如:

str:“书”

预期结果:

{
    numbers: [8, 2]
}

1 个答案:

答案 0 :(得分:1)

您可以通过触发以下查询来实现:

db.collection.find({name: {$regex: /^book(.*)[\d]$/}}).map(function(record){
  return NumberInt(record.name.match(/[\d]+$/)[0]);
});