javascript 如何在mongoose中查找连续结果

yc0p9oo0  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(80)

想象我有下一个系列:

    • 文件**

| _标识符|电码|
| - ------|- ------|
| 随机拟元|ZA/1/1/1 - 1#1|
| 随机拟元|ZA/1/1/1 - 1#2|
| 随机拟元|ZA/1/1/1 - 1#3|
| 随机拟元|ZA/1/1/1 - 1#10|
| 随机拟元|ZA/1/1/1 - 1#12|
| 随机拟元|ZA/1/1/1 - 1#12 - 1|
| 随机拟元|ZA/1/1/1 - 1编号12 - 2 - 1|
| 随机拟元|ZA/1/1/1 - 1编号12 - 2 - 2|
| 随机拟元|ZA/1/1/1 - 1#120|
我想让"查尔兹"用:

Model.find({ code: { $regex: 'ZA/1/1/1-1#12'} })

我想要的是:

[
  {
    "_id": "randomid",
    "code": "ZA/1/1/1-1#12"
    "__v": 0
  },
  {
    "_id": "randomid",
    "code": "ZA/1/1/1-1#12-1"
    "__v": 0
  },
  {
    "_id": "randomid",
    "code": "ZA/1/1/1-1#12-2-1"
    "__v": 0
  },
  {
    "_id": "randomid",
    "code": "ZA/1/1/1-1#12-2-2"
    "__v": 0
  },

]

但我得到(相同,但包括#120):

[
  {
    "_id": "randomid",
    "code": "ZA/1/1/1-1#12"
    "__v": 0
  },
  {
    "_id": "randomid",
    "code": "ZA/1/1/1-1#12-1"
    "__v": 0
  },
  {
    "_id": "randomid",
    "code": "ZA/1/1/1-1#12-2-1"
    "__v": 0
  },
  {
    "_id": "randomid",
    "code": "ZA/1/1/1-1#12-2-2"
    "__v": 0
  },
  {
    "_id": "randomid",
    "code": "ZA/1/1/1-1#12-2-2"
    "__v": 0
  },
  {
    "_id": "randomid",
    "code": "ZA/1/1/1-1#120"
    "__v": 0
  },

]

所以,这就是我寻求帮助的原因,我如何防止这种情况发生?谢谢。

uxh89sit

uxh89sit1#

如果我没理解错你的问题:
您想要获取可能使用以下代码格式定义的子项/连续项:

  • ZA/1/1/1-1#12
  • ZA/1/1/1-1#12-SOMETHING

翻译过来就是ZA/1/1/1-1#12(\-.+)?$或者/ZA\/1\/1\/1\-1#12(\-.+)?$/
这些结果符合您的要求

test> db.sth.find().pretty()
[
  { _id: 'randomid', code: 'ZA/1/1/1-1#12' },
  { _id: 'randomid', code: 'ZA/1/1/1-1#12-1' },
  { _id: 'randomid', code: 'ZA/1/1/1-1#12-2-2' },
  { _id: 'randomid', code: 'ZA/1/1/1-1#120' }
]

test> db.sth.find({ code: { $regex: "ZA/1/1/1-1#12(\-.+)?$"} }).pretty()
[
  { _id: 'randomid', code: 'ZA/1/1/1-1#12' },
  { _id: 'randomid', code: 'ZA/1/1/1-1#12-1' },
  { _id: 'randomid', code: 'ZA/1/1/1-1#12-2-2' }
]

test> db.sth.find({ code: { $regex: /ZA\/1\/1\/1\-1#12(\-.+)?$/} }).pretty()
[
  { _id: 'randomid', code: 'ZA/1/1/1-1#12' },
  { _id: 'randomid', code: 'ZA/1/1/1-1#12-1' },
  { _id: 'randomid', code: 'ZA/1/1/1-1#12-2-2' }
]

相关问题