0
我使用MongoDB的
,並在過去,我已經能夠使用下面的插入或添加到一個子陣列已經在DB收集不加力推子陣列
這裏是我的問題,每一天我們看看itunes top 100,我們將歌曲和藝術家插入到我們的收藏中,事實上,我們使用兩個收藏來完成這項工作
但是我遇到的問題是我們存儲每一個歌曲和藝術家曾出現在iTunes前100名。
看到下面的代碼
$collection = static::db()->itunes_collection_australia;
$document = $collection->findOne(array('song' => (string)$entry->imname, "artist"=>(string)$entry->imartist));
if (null !== $document) {
$collection->update(
array(array('song' => (string)$entry->imname, "artist"=>(string)$entry->imartist)),
array('$push' => array("date" => array('$each'=> array((string)$date)),"chartno"=> array('$each'=> array($a))),
));
}
else
{
$collection->insert(array("song"=>(string)$entry->imname, "artist"=>(string)$entry->imartist,"preview"=>(string)$preview,"cd_cover"=>(string)$cover, "price"=>(string)$price,"date"=>array((string)$date),"chartno"=>array($a)));
}
如果發現藝術家和歌曲已經是集合,應該更新。目前它沒有運行任何東西。
如果它更新它不正確。
你看到「日期」字段應該顯示與chartno相同的多個日期,它也應該顯示那天它在圖表中的位置。
這是第一次插入時的樣子。
{
"_id" : ObjectId("52ea794d6ed348572d000013"),
"song" : "Timber (feat. Ke$ha)",
"artist" : "Pitbull",
"preview" : "http://a1264.phobos.apple.com/us/r1000/030/Music6/v4/48/30/3c/48303ca0-c509-8c15-4d4a-7ebd65c74725/mzaf_5507852070192786345.plus.aac.p.m4a",
"cd_cover" : "http://a1082.phobos.apple.com/us/r30/Music6/v4/64/41/81/644181ba-d236-211d-809e-057f4352d3d8/886444273480.170x170-75.jpg",
"price" : "$2.19",
"date" : [
"2014-01-29T07:10:38-07:00"
],
"chartno" : [
20
]
}
當腳本看到它回到前100時,它應該將它添加到日期和chartno字段。
像這樣
{
"_id" : ObjectId("52ea794d6ed348572d000013"),
"song" : "Timber (feat. Ke$ha)",
"artist" : "Pitbull",
"preview" : "http://a1264.phobos.apple.com/us/r1000/030/Music6/v4/48/30/3c/48303ca0-c509-8c15-4d4a-7ebd65c74725/mzaf_5507852070192786345.plus.aac.p.m4a",
"cd_cover" : "http://a1082.phobos.apple.com/us/r30/Music6/v4/64/41/81/644181ba-d236-211d-809e-057f4352d3d8/886444273480.170x170-75.jpg",
"price" : "$2.19",
"date" : [{
"2014-01-30T07:10:38-07:00"
},{2014-01-31T07:10:38-07:00}],
"chartno" : [
{20},{30}
]
}
但是未發生INFACT什麼似乎正在增加。
我想知道我是否做錯了什麼?我很清楚,我有。
我也試過以下'$addToSet'
但沒有成功。