问题标签 [azure-cosmosdb]

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.

0 投票
1 回答
473 浏览

azure - Azure DocumentDB 的技术基础是什么?

微软宣布 Azure DocumentDB 的可用性如下...

我真的很喜欢“JavaScript 逻辑的事务执行”。听起来像是一种类似于 PostgreSQL NoSQL 的方法。

有谁知道 Azure DocumentDB 服务的技术基础是什么?SQL 服务器?

0 投票
1 回答
8589 浏览

azure - Azure DocumentDB 和 Azure 表存储之间的主要区别

我正在为我的新项目选择数据库技术。我想知道 Azure DocumentDB 和 Azure 表存储之间的主要区别是什么?

DocumentDB 的主要优势似乎是全文搜索和丰富的查询功能。如果我理解正确,我不需要单独的搜索引擎库,例如 Lucene/Elasticsearch。

另一方面,表存储要便宜得多。

可能影响我的决定的其他差异是什么?

0 投票
6 回答
7330 浏览

azure - DocumentDB:按 ID 删除文档

我正在使用 Microsoft 的一个名为 DocumentDB 的新数据库。现在我想按 ID 删除一个文档,但我不知道该怎么做。DocumentDB 中的删除操作需要自链接,它们与我自己的 id 不同。

我可以执行一个额外的查询来找到自链接然后传递它,但这需要两个操作而不是一个,这就是我想避免的。有没有更好的方法可以在不使用查询或存储过程的情况下按 ID 删除条目?

0 投票
5 回答
7394 浏览

azure - 在 Azure DocumentDB 中按 Id 访问资源

我刚开始使用 Azure DocumentDB,我的兴奋变成了困惑。这件事很奇怪。似乎所有内容(数据库、集合、文档)都不需要通过其 ID 访问,而是通过其“SelfLink”访问。例如:

我创建一个数据库:

然后稍后某个时候我想创建一个集合:

当我真正希望给它的是我的数据库 ID 时,api 需要一个“数据库链接”。我手边没有'databaseLink'。DocumentDB 真的希望我每次想要做任何事情时都拉下所有数据库的列表并在其中搜索 databaseLink 吗?

这个问题一直向下。如果没有集合的“链接”,我无法将文档保存到集合中。

因此,要保存文档,我需要集合的链接。要获得收藏链接,我需要数据库链接。要获得数据库链接,我必须拉下我帐户中所有数据库的列表并对其进行筛选。然后我必须使用我发现的那个数据库链接来拉下该数据库中的集合列表,然后我必须筛选以查找我想要的集合的链接。这似乎不对。

我错过了什么吗?我不明白如何使用它吗?当 DocumentDB 坚持使用自己的链接方案来识别所有内容时,为什么我要为我的所有资源分配 ID?我的问题是“如何通过 ID 访问 DocumentDB 资源?”

0 投票
2 回答
275 浏览

sql - 如果没有 JOIN,那么在文档数据库中处理数据的正确方法是什么?

我知道 JOIN 在文档数据库中要么是不可能的,要么是不受欢迎的。我来自关系数据库背景,并试图了解如何处理这种情况。

假设我有一个员工集合,其中存储了所有员工相关信息。以下是典型的员工文件:

还可以说,我有一个单独的 Projects 集合,我在其中存储看起来像这样的项目数据:

如果我想返回我的所有项目以及项目团队的列表,我该如何处理以确保我返回有关团队中个人的所有相关信息,例如全名、电子邮件地址等?

是两个单独的查询吗?一个用于项目,另一个用于 ID 出现在项目集合中的人?

如果是这样,我该如何插入有关人员的数据,即全名、电子邮件地址?然后我是否在我的应用程序中执行 foreach 循环来更新数据?

如果我依靠我的应用程序来处理填充所有相关数据,这不是会抵消 MongoDB 等文档数据库的性能优势的性能损失吗?

谢谢你的帮助。

0 投票
3 回答
5572 浏览

azure - Azure DocumentDB 如何扩展?我需要担心吗?

我有一个超出 SQL Azure 的应用程序——无论如何,我愿意付出的代价——我对调查 Azure DocumentDB 很感兴趣。预览版显然具有明显的可扩展性限制(例如,如此处所述,但我认为如果我正确使用它,我可能会在预览期间摆脱这些限制。

所以这是我的问题。如何设计我的应用程序以利用 Azure DocumentDB 的内置可伸缩性?例如,我知道使用 Azure 表存储——这种廉价但非常有限的替代方案——你需要在两步层次结构中构建所有数据:PartitionKey 和 RowKey。如果您这样做(这在现实世界的应用程序中几乎是不可能的),ATS(据我所知)在幕后移动分区,从一台机器到另一台机器,以便您获得近乎无限的可扩展性。太棒了,你永远不必考虑它。

使用 SQL Server 进行横向扩展显然要复杂得多——您需要设计自己的分片系统,处理确定有问题的分片位于哪个服务器上,等等。可能,并且做得很好,可扩展性很强,但复杂而痛苦。

那么可伸缩性如何与 DocumentDB 一起使用呢?它保证了任意的可扩展性,但是存储引擎在幕后是如何工作的呢?我看到它有“数据库”,每个数据库都可以有一些“集合”,等等。但它的任意可扩展性如何映射到这些其他概念?如果我有一个包含数亿行的 SQL 表,如果我将所有这些数据放入一个集合中,我是否可以获得所需的可伸缩性?还是我需要手动将它分布在多个集合中,以某种方式分片?还是跨多个数据库?或者 DocumentDB 是否足够聪明,可以以一种高效的方式跨多台机器合并查询,而无需我考虑任何事情?或者...?

我一直在环顾四周,但尚未找到有关如何解决此问题的任何指导。对其他人发现的内容或 MS 推荐的内容非常感兴趣。

0 投票
1 回答
7113 浏览

c# - DocumentDB 在提取大量记录时是否比 SQL 慢?

我正在做一些基准测试,所以我有一个包含 2500 条记录的 SQL 数据库。我将这些记录插入 DocumentDB。

我写了两行代码,其中一行使用实体框架将所有 2500 拉到 C# 中的数组中。下一行将所有 2500 从DocuementDB 拉到一个数组中。

使用的代码:

DocumentDB 示例耗时超过 20 秒。SQL Server 线几乎是即时的。这些对象是具有 5 个属性的简单 DTO,我通过 Internet 进行了 SQL 查询。

我在滥用 DocumentDB 吗?我认为它是为了将你所有的记录拉入内存然后加入 linq。

0 投票
4 回答
4600 浏览

azure - 在 DocumentDB 中选择多个值

我有一个员工集合,我想检索 10 名员工的完整文档,我想将其 ID 发送到我的 SQL SELECT。我怎么做?

为了进一步澄清,我有 10 个 EmployeeId,我想从我的员工集合中提取这些员工的信息。感谢您对此的帮助。

0 投票
1 回答
858 浏览

angularjs - DocumentDb 用户数据隔离

我正在测试最近发布的 DocumentDb,但找不到任何说明如何执行用户数据隔离的最佳实践的文档。

我想粗略的设计是:

  • 验证用户并创建新/获取现有用户 ID
  • 在文档插入时,将用户 ID 注入到文档中
  • 在读取文档/文档集合时查询文档用户 ID = 当前用户 ID

我正在创建一个 AngularJs 应用程序,目前使用结合 Azure 移动服务的 Azure Sql 数据库。

移动服务通过使用数据脚本 javascript 函数处理用户身份验证以及服务器端用户数据隔离:

例如

关于使用 DocumentDB 与 AngularJS 安全隔离用户数据的技术有什么建议?

0 投票
3 回答
9933 浏览

c# - 我需要反序列化来自 DocumentDb 的查询结果吗?

对于 person 对象,我有一个简单的 POCO,如下所示:

我有以下代码查询我的 DocumentDb 数据库中的 People 集合。

当我运行此代码时,我收到以下错误:

无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型“System.Collections.Generic.List`1[MyApp.Person]”,因为该类型需要 JSON 数组(例如 [1,2, 3])正确反序列化。要修复此错误,请将 JSON 更改为 JSON 数组(例如 [1,2,3])或更改反序列化类型,使其成为普通的 .NET 类型(例如,不是像整数这样的原始类型,而不是像这样的集合类型可以从 JSON 对象反序列化的数组或列表。JsonObjectAttribute 也可以添加到类型中以强制它从 JSON 对象反序列化。路径“PersonId”,第 1 行,位置 48。

如何将来自我的查询的 JSON 对象转换为 Person 对象?在我的 MVC 应用程序中,模型绑定器做得很好,但它在单独的类库中运行。我应该如何转换这个 JSON 对象?