[英]Mongo query to get comma separated value
我有一个查询,它只向前移动。
例子:
{
"orderStatus": "SUBMITTED",
"orderNumber": "785654",
"orderLine": [
{
"lineNumber": "E1000",
**"trackingnumber": "12345,67890",**
"lineStatus": "IN-PROGRESS",
"lineStatusCode": 50
}
],
"accountNumber": 9076
}
find({'orderLine.trackingNumber' : { $regex: "^12345.*"} })**
当我使用上面的查询时,我得到了整个文档。 但是我也想在搜索67890值时获取文档
在任何时候,我都只会使用单个跟踪号进行查询。 12345 或 67890与 12345 或 67890 一起使用。跟踪编号值有可能扩展其值 12345,56789,01234,56678。
无论 position 中的跟踪号是什么,我都需要提取整个文档。
OUTPUT
应该是整个文档
{ "orderStatus": "SUBMITTED", "orderNumber": "785654", "orderLine": [ { "lineNumber": "E1000", "trackingnumber": "12345,67890", "lineStatus": "IN-PROGRESS" , "lineStatusCode": 50 } ], "accountNumber": 9076 }
我还为 trackingNumber 字段做了索引。 这里需要帮助。 提前致谢。
以下将搜索 12345 或 67890。它类似于 like 条件
find({'orderLine.trackingNumber' : { $regex: /12345/} })
find({'orderLine.trackingNumber' : { $regex: /67890/} })
还有另一种方法可以做到这一点
创建文本索引
db.order.createIndex({'orderLine.trackingnumber':"text"})
您可以使用此索引从 trackingnumber 字段中搜索值
db.order.find({$text:{$search:'12345'}})
--
db.order.find({$text:{$search:'67890'}})
--
//Do take note that you can't search using few in between characters
//like the following query won't give any result..
db.order.find({$text:{$search:'6789'}}) //have purposefully removed 0
要进一步了解$text
搜索的工作原理,请通过以下链接拨打 go。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.