Как создать BLOB-объект в MongoDB с помощью laravel

Я использую Laravel4 PHP Framework, мое веб-приложение должно обрабатывать API формата JSON.

Первая часть моей проблемы заключается в том, что каждый раз, когда я получаю подписку, веб-приложение получает подписку, deviceID и listID (где list ID — это список, который был подписан устройством, имеющим deviceID).
Для каждого полученного идентификатора устройства мы должны создать блоб с идентификатором устройства

{
deviceID:........,
subscription:[{listID:1},{listID:2}.......]
}

когда одно и то же устройство подписывается на несколько списков, мне нужно обновить подписку, аналогично, когда новое устройство подписывается, новый документ должен быть создан, как указано выше.

Вторая часть моей проблемы заключается в том, что наш веб-сайт будет создавать рекламные кампании для каждого из списков. Каждая кампания будет иметь поля, такие как заголовок, значок, изображение, подробное описание и т. Д.
когда кампания включена, эта кампания должна быть вставлена ​​в массив предложений вышеуказанного документа как объект.

{
deviceID:........,
subscription:[{listID:1},{listID:2}.......],
offers [{campaign1}]
}

Кампания будет иметь много полей.

я пытался

db.subscribers.insert(
{
_id:98745334,
subscriptions: [{
list_id: "14Q3"}, {list_id: "8989"}
],
offers: [ { title: "50% off", qty: 25 }, { title: "20% off", qty: 50 } ],
})

Это сработало.
Но,
Я не мог вставлять, извлекать или обновлять любые данные, используя Laravel4.

Я использую MongoDB и Laravel4

Извините за плохой английский
пожалуйста, помогите мне

0

Решение

Как я преуспел в вставке следующим образом

       DB::connection('mongodb')->collection('subscribers')->insert(array(
'_id' => $subscriber->device_id,
'subscriptions' => array(array('list_id' => $subscriber->list1_id)),
));

Для вставки в массив подписок я использовал следующий код

Subscription::where('_id',$subscriber->device_id)->push('subscriptions', array('list_id' => $subscriber->list1_id));
0

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

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

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