gpt4 book ai didi

node.js - 像Instagram一样使用mongodb和node js的社交网络

转载 作者:太空宇宙 更新时间:2023-11-04 02:16:39 31 4
gpt4 key购买 nike

我在我的应用程序中使用 mongodb 和 Node js。我们有用户集合和事件集合。

Users :-  "user":{
"name":[name],
"email":[email]

}

Events :- "event":{
"title":[title],
"venue":[venue]

}

以前用户只能关注事件,但不能互相关注,现在我也在围绕用户建立社交网络,这样用户就可以互相关注,他们的提要也会相应地改变,就像 Instagram 一样。

所以我的问题是,由于我的主数据库是 Mongodb,所以我应该仅使用 Mongodb 来建立这个社交网络,还是应该使用一些图形数据库并将所有用户数据从 Mongo db 放入图形数据库并同时维护两个数据库

最佳答案

实现此目的的一种方法是运行一个 Express 服务器 GraphQL在 Mongo 前面使用 express-graphql 。如果您定义用户类型和事件类型,您可以编写如下的 graphql 查询:

query {
user(name: "Sally") {
followed_users {
name
}
followed_events {
title
}
}
}

这本质上将您的数据呈现为图表,但 graphql 会在幕后触发一系列 mongodb 查询(查看解析函数 here 并想象 Mongo 查询而不是 data[args.id])以获取所有信息,然后将其组合成单个 JSON 响应。

更具侵入性的选择是从 MongoDB 切换到 ArangoDB 。它是一个像 MongoDB 一样的文档存储,所以它应该非常熟悉,但是如果您添加额外的边集合(另一个带有 _to: 和 _from: 属性的文档),那么您就拥有了一个实际的图,并且可以在数据库中进行实际的连接、遍历和事务。

虽然 GraphQL 只是将数据呈现为图表,但 ArangoDB 实际上是 full-on graph database 。无论哪种方式,您都可以解决您的问题,而无需强制自己处理多个数据存储的复杂性和成本。

关于node.js - 像Instagram一样使用mongodb和node js的社交网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35427188/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com