如何查询-使用Mongodb的数组键值Laravel的位置



这是我的数据库结构

{ 
"_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=>infoID所在的数据。。我正在使用Mongo-db

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

我该怎么做???

查看MongoDB 中的$elemMatch文档

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

应该做这个把戏。

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

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

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

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

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

最新更新