Oli*_*ier 5 facebook graph mongodb nosql
我正在构建一个需要能够扩展facebook图形数据的应用程序.
我是NoSQL存储的新手,我正在寻求帮助.
使用图形api,我可以检索用户,因为我希望我的应用程序能够扩展几个社交图形提供程序,我将每个特定的facebook密钥移动到一个facebook数组子集中.
[User] => Array
(
[_id] => 4dd50c139bcb233c0c000000
[name] => Foo Bar
[first_name] => Foo
[last_name] => Bar
[username] => fbar
[location] => Array
(
[id] => 110774245616525
[name] => Paris, France
)
[gender] => male
[email] => fbar@gmail.com
[timezone] => 2
[locale] => fr_FR
[facebook] => Array
(
[id] => 12345678
[link] => http://www.facebook.com/foobar
[verified] => 1
[updated_time] => 2011-05-16T17:30:23+0000
[picture] => https://graph.facebook.com/12345678/picture
)
[created] => MongoDate Object
(
[sec] => 1305807891
[usec] => 0
)
)
Run Code Online (Sandbox Code Playgroud)
然后我抓住他的朋友,我希望能够让他们与我的数据库保持同步.我不知道我是否应该将每个朋友注册为单独的用户并尝试使用引用,或者我是否可以添加一个Friend子集.
什么是最好的性能和最容易保持同步?
[User] => Array
(
[Friend] => Array
(
[0] => Array
(
[id] => 12345678
[name] => Foo Bar
)
[1] => Array
(
[id] => 12345678
[name] => Foo Bar
)
[2] => Array
(
[id] => 12345678
[name] => Foo Bar
)
Run Code Online (Sandbox Code Playgroud)问题上升到另一个级别与FriendLists,我应该如何存储?嵌入一切(并在我的用户中有大量的重复)或使用参考?我该怎么做?
我读到:http://www.mongodb.org/display/DOCS/Trees+in+MongoDB,这是非常有帮助的...但我仍然不确定我应该做什么.
非常感谢.
我有一个类似的应用程序,我将朋友存储为其他用户。但请确保您有一个标志来指示该用户是否是应用程序用户,否则数据在某些时候会变得混乱。
对于用户:
{
fbid: xxxx,
name : "xxxxx",
......
friends : [ xxxx, xxxx, xxxx ],
is_app_user : true
}
Run Code Online (Sandbox Code Playgroud)
对于每个朋友(不是应用程序用户):
{
fbid: xxxx,
name : "xxxxx",
is_app_user : false
}
Run Code Online (Sandbox Code Playgroud)
当他们也登录时,您也可以is_app_user : true为他们制作。
PS:不要忘记在fbid上放置唯一索引