【问题标题】:How to write a mongo jpa query to search by inner document id?如何编写一个 mongo jpa 查询来按内部文档 ID 进行搜索?
【发布时间】:2021-06-23 02:13:51
【问题描述】:

我是 JPA 的 mongo DB 新手。我有一个如下的文档对象:

{
'_id': ObjectId("A"),
customer:[
    0: {
        id: 21,
        order:
            {
              id:23, 
              orderName:'orderName1'
            }
       
    },
    1: {
        id: 22,
        order:
            {
               id:12,
               orderName:'Electronics'
            }
    },
]
}

在这里,我想获取以"Ele" 开头的所有orderName 的订单(示例)。我试过了:

  1. @Query(value="{'order.orderName':{'$regex':'?0','$options':'i'}}")
  2. @Query("{'order':{'orderName':{'$regex':'?0','$options':'i'}}}")

这些都不适合我。

请建议如何做到这一点。

【问题讨论】:

标签: java sql mongodb spring-boot jpa


【解决方案1】:

演示 - https://mongoplayground.net/p/k8Au7Bnmkvg

$regex

db.collection.find({
  "customer.order.orderName": {
    "$regex": "Ele.+",
    "$options": "i"
  }
})

您正在尝试查询 order.orderName,但根据您的架构,它位于 customer 对象内,因此请使用 customer.order.orderName

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多