[英]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.