问题标签 [nosql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
couchdb - 表示 couchDB 中的多对多关系
假设我正在编写一个日志分析应用程序。主域对象将是一个 LogEntry。此外。应用程序的用户定义了一个 LogTopic,它描述了他们感兴趣的日志条目。当应用程序接收到日志条目时,它会将它们添加到 couchDB,并根据系统中的所有 LogTopics 检查它们是否符合主题中的条件. 如果是,则系统应记录该条目与主题匹配。因此,LogEntries 和 LogTopics 之间存在多对多的关系。
如果我将其存储在 RDBMS 中,我会执行以下操作:
使用 CouchDB,我首先尝试只有两种文档类型。我有一个 LogEntry 类型,看起来像这样:
我会有一个 LogTopic 类型,看起来像这样:
您可以看到我通过matching_entries
在每个 LogTopic 文档中使用一个字段来存储 LogEntry 文档 ID 列表来表示关系。这在一定程度上可以正常工作,但是当多个客户端都尝试将匹配条目添加到主题时,我遇到了问题。两者都尝试乐观更新,一个失败了。我现在使用的解决方案是从本质上重现 RDBMS 方法,并添加第三种文档类型,例如:
这有效,并且克服了并发更新问题,但我有两个保留意见:
- 我担心我只是在使用这种方法,因为这是我在关系数据库中所做的。我想知道是否有更类似于 couchDB(放松?)的解决方案。
- 我的视图无法再一次调用中检索特定主题的所有条目。我以前的解决方案允许这样做(如果我使用了 include_docs 参数)。
有人对我有更好的解决方案吗?如果我也发布我正在使用的视图会有帮助吗?
sql - 使用非 SQL 数据库是否可以避免防范“SQL 注入”?
这似乎是一个明显(或不那么明显)的问题,但让我解释一下。我正在使用 Google 的数据库技术 BigTable 编写一个 Google App Engine 网站。任何 App Engine 编码人员都会知道 Google 有自己的有限查询语言,称为 GQL。因此,我很想不在我的应用程序中检查 SQL(或 GQL)注入,因为我假设 Google 没有在其后端方法上使用原始字符串查询来获取数据。
此外,CouchDB、MongoDB 和其他对象或文档(又名 NoSQL)数据库等数据库技术库似乎无需检查恶意用户是否正在注入数据库操作命令。它们通常具有将数据库中的对象直接映射到您选择的语言的对象的库。我知道有很多 SQL 库也可以做到这一点,但我假设在某种程度上它们正在组合参数以对字符串运行查询,因此即使使用这些框架,我仍然必须使用 SQL 注入保护。
我是不是目光短浅?还是下一个伟大的数据库系统站稳脚跟只是时间问题,然后我会看到注入这些系统?
nosql - 在哪里可以找到有关 NOSQL 实现模式的信息?
刚刚看到这篇关于 NOSQL 模式的文章(不是我的)。从开发人员的角度来看,它涵盖了许多 NOSQL 实现模式(如散列和复制模式)。
总而言之,如果有人问自己这个问题,它非常有用:
在哪里可以找到有关 NOSQL 实现模式的信息?
所以在这里添加了一个问题,请随时添加更多答案!
nosql - Cassandra 与 Amazon SimpleDB
我正在开发一个数据大小和 SQL 查询会很繁重的应用程序。我在考虑 Cassandra 或 Amazon SimpleDB。您能建议哪种更适合这种情况吗?
Cassandra 数据索引似乎比 Amazon simpleDB 更好,但与 Amazon SimpleDB 相比,查询的选项更少。似乎 Amazon SimpleDB 的 I/O 率很高。
很少有复杂的用例是具有不同过滤器的用户活动,用户可以将其缩小到一些有趣的活动。
如果您认为除了这两个之外还有其他更清洁和更好的解决方案,请提出建议。
indexing - CouchDB 视图、映射、索引和序列
我想在某处读到,当请求视图时,“地图”仅在自上次请求以来添加的文档中运行?这是如何确定的?我以为我看到了一些关于序列号的东西。这是你能做到的吗?它不是 _rev 字段尾随的 UUID 的一部分吗?
有什么方法可以强制“重新计算”整个视图(跨所有记录)?
nosql - Cassandra 是否适合用作主数据存储?
我正在为即将到来的项目评估存储平台,并不断回到 Cassandra。对于这个项目,丢失任何数量的数据都是不可接受的。到目前为止,我们使用的是关系型数据库(Microsoft SQL Server),但数据种类繁多且庞大,以至于存储和查询成为问题。
Cassandra 是否足够强大,可以用作主数据存储?还是应该只用于镜像现有数据以加快访问速度?
node.js - 如何在游戏应用程序中匹配正确答案和问题
我已经实现了一个游戏应用程序,其中有四个选项,其中有一个答案。选项是随机排列的。如何检查所选选项是否为正确答案?
mongodb - SimpleDB 与 MongoDB 类似吗?它们都是键/值类型数据库吗?
SimpleDB 与 MongoDB 类似吗?
scalability - 是否有任何稳定和生产质量的 nosql 数据存储?
是否有可以在生产系统上使用的生产质量 nosql 存储。我看过 cassandra、tokyodb、couchdb 等,但它们似乎都没有准备好在生产环境中进行部署。我说的是每分钟数千个请求和大量读取/写入/更新。我唯一关心的是速度和服务时间。有人知道有效使用 nosql 存储的生产系统吗?有谁知道由 Google/Yahoo/IBM 等大企业支持的 nosql 商店?
google-app-engine - 是否有一个 nosql 存储也允许存储实体之间的关系?
我正在寻找也提供存储/维护存储实体之间关系的 nosql 键值存储。我知道 Google App Engine 的数据存储允许实体之间的拥有和非拥有关系。是否有任何流行的 nosql 商店提供类似的东西?
尽管它们中的大多数都没有模式,但是否有方法可以将关系适当地应用于键值存储?