簡體   English   中英

如何在 mongoose 中找到連續的結果

[英]How find consecutive results in mongoose

想象我有下一個系列:

文件

_ID 代碼
隨機數 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
  },

]

所以,這就是我尋求幫助的原因,我該如何防止這種情況發生? 謝謝。

如果我正確理解你的問題:

您想要獲取可能使用此代碼格式定義的子項/連續項:

  • 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' }
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM