在NoSQL(MongoDB)中存储/同步Facebook图形

在NoSQL(MongoDB)中存储/同步Facebook图形,mongodb,facebook,graph,nosql,Mongodb,Facebook,Graph,Nosql,我正在开发一个需要能够扩展facebook图形数据的应用程序 我是NoSQL存储新手,正在寻求帮助 使用graph api,我可以检索一个用户,因为我希望我的应用程序能够扩展多个社交图提供商,我将检索到的每个特定facebook密钥移动到facebook数组子集中 [User] => Array ( [_id] => 4dd50c139bcb233c0c000000 [name] => Foo Bar [first_nam

我正在开发一个需要能够扩展facebook图形数据的应用程序

我是NoSQL存储新手,正在寻求帮助

使用graph 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
            )
    )
  • 这是好的做法吗
然后我抓到他的朋友,我想让他们和我的数据库保持同步。 我不知道我是否应该将每个朋友注册为单独的用户并尝试使用引用,或者我是否可以只添加一个
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
                    )
    
  • 朋友列表的问题上升到另一个层次,我应该如何存储它们??嵌入所有内容(并且在我的用户中有大量副本)或使用引用?我该怎么做

我读到:这很有帮助。。。但我仍然不确定我该怎么做

非常感谢。


另外:如果你想存储一个图形,那么使用GraphDB-MongoDB通常不太可能是存储图形的正确选择…对于每项任务,都要使用正确的工具。

我有一个类似的应用程序,我将朋友存储为其他用户。但请确保您有一个标志,指示该用户是否为应用程序用户,否则数据在某个点上会变得混乱

对于用户:

{
  fbid: xxxx,
  name : "xxxxx",
  ......
  friends : [ xxxx, xxxx, xxxx ],
  is_app_user : true
}
对于每个朋友(非应用程序用户):

当他们也登录时,你也可以为他们设置
is\u app\u user:true

PS:别忘了在fbid上添加唯一索引这是一个“嵌入与引用”的问题

这里有一个


这是官方文件。他们是开始研究这些问题的好地方。

要存储类似于您的图形,您应该使用图形数据库,而不是DocumentDB。试试看:这是一个文档图nosql,具有两个世界中最好的特性。您的用例最重要的特性是能够在几毫秒内遍历数千个关系!开源和Apache 2许可。

似乎很有趣。您使用mongo引用还是在单独的查询中获得朋友?我更喜欢在单独的查询中获得朋友
{
  fbid: xxxx,
  name : "xxxxx",
  is_app_user : false
}