如何查询 - 数组键值 Laravel 和 Mongodb 中的位置
How to query- Where In Array Key Value Laravel with Mongodb
这是我的数据库结构
{
"_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();
我该怎么做???
我不确定 mongoDB,但你可以使用 json where 子句。
Laravel 还支持在支持 JSON 列类型的数据库上查询 JSON 列类型。目前,这包括 MySQL 5.7 和 PostgreSQL。要查询 JSON 列,请使用 -> 运算符:
$result = Table::where('order_item->info', 'SOME VALUE')->get();
看看$elemMatch documentation in MongoDB
db.orders.find({ "order_item" : { "$elemMatch" : { "info" : "5e26098d94500000870044ac" } } });
应该可以解决问题。
对于 Laravel 您可以使用以下查询:
$info = "5e26098d94500000870044ac";
$result = Table::where('order_item', 'elemMatch', ['info'=>$info])->get()->first();
这是我的数据库结构
{
"_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();
我该怎么做???
我不确定 mongoDB,但你可以使用 json where 子句。
Laravel 还支持在支持 JSON 列类型的数据库上查询 JSON 列类型。目前,这包括 MySQL 5.7 和 PostgreSQL。要查询 JSON 列,请使用 -> 运算符:
$result = Table::where('order_item->info', 'SOME VALUE')->get();
看看$elemMatch documentation in MongoDB
db.orders.find({ "order_item" : { "$elemMatch" : { "info" : "5e26098d94500000870044ac" } } });
应该可以解决问题。
对于 Laravel 您可以使用以下查询:
$info = "5e26098d94500000870044ac";
$result = Table::where('order_item', 'elemMatch', ['info'=>$info])->get()->first();