【问题标题】:How to query- Where In Array Key Value Laravel with Mongodb如何使用 Mongodb 查询数组键值 Laravel 的位置
【发布时间】:2020-02-19 17:20:06
【问题描述】:

这是我的数据库结构

{ 
    "_id":"5e4d4d6fc01c0000cc0009bd",
    "UID":"5e30376327050000b3006cde",
    "delevery_charge":25,
    "order_item":[ 
        { 
            "id":"5e2f4a636c630000f20053bc",
            "Name":"XXXXX",
            "info":"5e26098d94500000870044ac",
        }
    ],
    "subtotal":110,
    "status":1,
    "updated_at":"2020-02-19T14:59:59.000Z",
    "created_at":"2020-02-19T14:59:59.000Z"
}

我想查找order_item=>info ID 的数据。我正在使用 Mongo db

$db = Table::where(''Dont Know what to do)->first();

我该怎么做???

【问题讨论】:

    标签: laravel mongodb laravel-6.2


    【解决方案1】:

    看看$elemMatch documentation in MongoDB

    db.orders.find({ "order_item" : { "$elemMatch" : { "info" : "5e26098d94500000870044ac" } } });

    应该做的伎俩。

    【讨论】:

      【解决方案2】:

      对于 Laravel,您可以使用以下查询:

      $info = "5e26098d94500000870044ac";
      $result = Table::where('order_item', 'elemMatch', ['info'=>$info])->get()->first();
      

      【讨论】:

        【解决方案3】:

        我不确定 mongoDB,但你可以使用 json where 子句。

        Laravel 还支持在提供 JSON 列类型支持的数据库上查询 JSON 列类型。目前,这包括 MySQL 5.7 和 PostgreSQL。要查询 JSON 列,请使用 -> 运算符:

        $result = Table::where('order_item->info', 'SOME VALUE')->get();
        

        【讨论】:

          猜你喜欢
          • 2018-08-14
          • 1970-01-01
          • 2020-02-24
          • 2017-05-12
          • 1970-01-01
          • 1970-01-01
          • 2019-12-27
          • 1970-01-01
          • 2021-07-23
          相关资源
          最近更新 更多