gpt4 book ai didi

node.js - 我的 node.js 服务的最佳键值存储

转载 作者:IT王子 更新时间:2023-10-29 06:01:25 25 4
gpt4 key购买 nike

我需要编写一个以键值存储作为后端的 node.js 服务。我的数据如下所示:

Item
Name: "Item 1"
Attributes
AttributeA: "ValueA"
AttributeB: "ValueB"
AttributeC: "ValueC"

Item
Name: "Item 2"
Attributes
AttributeA: "ValueC"
AttributeB: "ValueD"

我问自己,哪个是满足我要求的最佳后端。我需要一个快速的后端,它可以从 node.js 轻松访问并且可以处理大量数据(1-2 百万项具有 15-20 个属性)。重要的是,属性可能因项目而异,因此没有 20 个固定属性。我以后的查询将如下所示:

  • 获取项目 1 的所有属性
  • 获取属性 A 的所有值(来自所有项目)
  • 获取所有包含属性B的item

或者像 couchDB 这样的 noSQL 数据库会更好吗?我将不胜感激一些提示。 ;)

谢谢

托本

最佳答案

虽然它可能取决于其他参数(如属性的大小、类型、读/写比率),但我认为像 MongoDb 这样的文档数据库(或 couchDb,即使我个人没有使用它)会很合适。原因是您想根据属性的“值”进行查询,这在像 Redis 这样的数据库中是不可能的(如果不更改您建议的架构,即使 Redis 非常适合许多用例).

使用这样的文档:{name: "Item 1", AttributeA: "ValueA", AttributeB "ValueB"...},您可以实现您提到的查询:

db.docs.find({name: "Item 2"}); (如果您经常使用此查询,可能会在名称上设置索引)db.docs.distinct('attributeA');db.docs.find({attributeB: {$exists: true}}});

等等……

您可以在这里找到一个非常好的 nodejs mongodb 驱动程序:https://github.com/christkv/node-mongodb-native

希望这对您有所帮助!

关于node.js - 我的 node.js 服务的最佳键值存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9887465/

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