Объединить два документа mongodb через PHP?

Я хочу иметь возможность объединить два документа, эти документы находятся в одной коллекции. Например, вот главный документ.

Один документ

{
"_id" : ObjectId("5640965bb23eec8d218b4a92"),
"agencyID" : "111111",
"paxID" : "22222",
"bookings" : [
{
"bookingID": "213123",
"transactions": [
{
"tranID": "001",
"invoices": [
{
"invNum": "1234145",
"type": "i",
"inv_date": "20140318",
"inv_time": "1642",
"inv_val": NumberLong(81383)
}
],
"tranType": "Car",
"tranDate": "20140318",
"tranTime": "2312",
"opCode": "ge2123",
"pupDate": "20140104",
"advPur": "13"}
]
}
]
}

И я хочу объединить его с таким документом

Документ второй

{
"_id" : ObjectId("5640966ab23eec8d218b4c5a"),
"agencyID" : "22122",
"paxID" : "-14141",
"bookings" : [
{
"bookingID": "452452",
"transactions": [
{
"tranID": "002",
"invoices": [
{
"invNum": "2432422",
"type": "i",
"inv_date": "20141119",
"inv_time": "1407",
"inv_val": NumberLong(20840)
}
]
}
]
}
]
}

Так, например, файл PHP будет объединять документДва«в документ»Один«Так что вместо перезаписи документа»Один«это добавляет еще одно« бронирование »на документ»Ones«текущие бронирования, поэтому, когда слияние завершено документ»Один‘будет иметь бронирование — 213123 & 452452 вместе с остальной информацией о бронировании.

Надеюсь, я объяснил это достаточно хорошо.

РЕДАКТИРОВАТЬ —

Слияние должно выглядеть следующим образом.

    {
"_id" : ObjectId("5640965bb23eec8d218b4a92"),
"agencyID" : "111111",
"paxID" : "22222",
"bookings" : [
{
"bookingID": "213123",
"transactions": [
{
"tranID": "001",
"invoices": [
{
"invNum": "1234145",
"type": "i",
"inv_date": "20140318",
"inv_time": "1642",
"inv_val": NumberLong(81383)
}
],
"tranType": "Car",
"tranDate": "20140318",
"tranTime": "2312",
"opCode": "ge2123",
"pupDate": "20140104",
"advPur": "13"}
]
},
{
"bookingID": "452452",
"transactions": [
{
"tranID": "002",
"invoices": [
{
"invNum": "2432422",
"type": "i",
"inv_date": "20141119",
"inv_time": "1407",
"inv_val": NumberLong(20840)
}
]
}
]
}
]
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]