如何使用laravel在MongoDB中创建blob

时间:2015-01-08 13:14:28

标签: php mongodb laravel-4 nosql

我使用的是Laravel4 PHP Framework,我的Web应用程序必须处理JSON格式的API。

我的问题的第一部分是,每次我获得订阅时,web应用程序都会收到deviceID和listID(其中列表ID是由具有deviceID的设备订阅的列表)。 对于收到的每个deviceID,我们必须创建一个具有deviceID的blob,如

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

当同一设备订阅多个列表时,我必须更新订阅,同时在新设备订阅时,必须按上述方式创建新文档。

我的问题的第二部分是我们的网站将为每个列表创建一个优惠活动。每个广告系列都会有标题,图标,图片,详细说明等字符。 当广告系列为ON时,此广告系列必须插入以提供上述文档数组作为对象,例如:

{
    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

抱歉英语不好 请帮帮我

1 个答案:

答案 0 :(得分:0)

因为我已成功插入以下

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

为了推入Subscriptions数组,我使用了以下代码

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