#mongodb #moloquent
#mongodb #moloquent
Вопрос:
У меня есть этот документ
{
_id: ObjectId('5f8970f19e6afb628a2edd07'),
name: 'pack 1',
price: 100,
min_price: 100,
updated_at: ISODate('2020-10-16T10:07:45.570Z'),
created_at: ISODate('2020-10-16T10:07:45.530Z'),
available_quantity: -1,
quantity: -1,
slots: [
{
duration: '365',
price: 100,
_id: '5f8970f19e6afb628a2edd07_5f8970f18b3aa',
created_at: ISODate('2020-10-16T10:07:45.529Z'),
updated_at: ISODate('2020-10-16T10:07:45.529Z'),
available_quantity: -1,
quantity: -1
},
{
duration: '255',
_id: '5f8970f19e6afb628a2edd07_5f8970f18b3c7',
created_at: ISODate('2020-10-16T10:07:45.529Z'),
updated_at: ISODate('2020-10-16T10:07:45.529Z'),
price: 100,
available_quantity: -1,
quantity: -1
}
]
}
и я хотел бы, чтобы только этот вложенный документ использовал Moloquent
{
duration: '365',
price: 100,
_id: '5f8970f19e6afb628a2edd07_5f8970f18b3aa',
created_at: ISODate('2020-10-16T10:07:45.529Z'),
updated_at: ISODate('2020-10-16T10:07:45.529Z'),
available_quantity: -1,
quantity: -1
}
Поиск должен выполняться по _id в вложенном
документе, например. _id: 5f8970f19e6afb628a2edd07_5f8970f18b3aa
Комментарии:
1. Я могу написать для него запрос mongo. Сможете ли вы преобразовать его в moloquent?
Ответ №1:
Вот запрос mongo.
db.collection.aggregate([
{
"$unwind": "$slots"
},
{
"$match": {
"slots._id": "5f8970f19e6afb628a2edd07_5f8970f18b3aa"
}
},
{
"$project": {
_id: 0,
price: "$slots.price",
duration: "$slots.duration",
created_at: "$slots.created_at",
updated_at: "$slots.updated_at",
_id: "$slots._id",
available_quantity: "$slots.available_quantity",
quantity: "$slots.quantity"
}
}
])
Также здесь создана игровая площадка Mongo.