0
我想創建一個多維集合。 收藏有地點。每個地點都有用戶,每個用戶都有照片。Multidimentional addToSet/Push mongodb
現在,集合具有位置,例如,
{ "_id" : ObjectId("52148266c36b4403e855bef9"),
"latitude" : 48.958,
"id" : "110600715",
"longitude" : 9.13,
"name" : "Coffee" }
我的最終結果必須是這樣的:
{ "_id" : ObjectId("52148266c36b4403e855bef9"),
"latitude" : 48.958,
"id" : "110600715",
"longitude" : 9.13,
"name" : "Coffee",
'users' : [
{
'user' : 45,
'username' : 'Me',
'user_fullname': 'Name Lastname',
'photos': [
{
'photo_id' : 10,
'created_time' : 1236456712,
'link' : 'http...',
'image' : 'http...',
'tags' : 'a'
},
{...}
] # end of photos list
},
{...}
] #end of users list
}
如果用戶不存在,創建新的用戶,並添加了第一張照片。 如果用戶存在,請添加帶有唯一photo_id
的下一張圖片。
這是我試過以下的一個示例。我正在用python使用pymongo。我知道我錯過了第二個$addToSet
或類似的東西。
db.col.update({'_id':location_id['_id']},
{ '$addToSet' :
{
'user' : int(i['user']['id']),
'username' : i['user']['username'],
'user_fullname': i['user']['full_name'],
'photos':
{
'photo_id' : i['id'],
'created_time' : int(i['created_time']),
'link' : i['link'],
'image' : i['images']['url'],
'tags' : i['tags']
}
}
}
)
可能重複[是否有可能在同一更新中多次使用$ addToSet?](http://stackoverflow.com/questions/16595195/is-it-possible-to-utilize-addtoset-multiple-times -in最相同 - 更新) – WiredPrairie