问题标签 [mongodb]

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 投票
5 回答
1039 浏览

.net - .NET 的基于文档的数据库

我想在我的 web 应用程序中使用某种 nosql 数据库,它是用 asp.net mvc 编写的,但找不到任何有用的东西。我查看了 MongoDB 和 CouchDB,但我希望为我的查询提供比它们更好的 api(强类型不是魔术字符串)。.NET 是否存在类似的东西?

0 投票
4 回答
14397 浏览

mongodb - 在键值数据存储中存储目录层次结构

将目录层次结构/树存储在键值数据库中的干净/有效方法是什么(在我的情况下是 MongoDB,但其中任何一个)?

例如树形结构

我现在使用的方法,每个对象都链接到它的父对象

这使得插入和重新排序树的任何方面都非常高效/快速(例如,如果我想将 Red 及其所有子项移动到 Cars 目录)。

但是当我想递归地访问给定目录的所有子目录及其子目录时,这种方法很糟糕。为了提高解析效率,我可以有一个结构,例如

但是如果我想修改树,就需要触摸和修改一大堆对象。

有没有其他方法可以在 KV 存储中存储目录结构?

0 投票
1 回答
15010 浏览

mongodb - 使用狮身人面像搜索与 mongodb 作为数据源

我们决定将 mongodb 用于某些 Web 应用程序(而不是 mysql),但希望继续使用 sphinx 来索引/搜索存储在 mongodb 中的所有数据。由于 mongodb object-id 是默认的哈希值——我们希望保留它——现在使用 sphinx 存在一个问题。正如狮身人面像文档中所说:

所有文档 ID 必须是唯一的无符号非零整数(32 位或 64 位,取决于构建时间设置)。

所以......解决这个问题的最佳方法是什么......我们如何将mongodb object-id映射到非零整数(并返回)?

更新

casey 的答案是正确的研究方向,但事实证明,字符串属性在当前的开发版本中仅可用于 sql 数据源。对于 xmlpipe,有必要将补丁应用到结帐源。更多信息可以在sphinx 论坛中找到。

0 投票
1 回答
542 浏览

mongodb - 如何在 mongodb 中运行此查询?

我的文档有一个数组字段Keys

Keys1Keys2是两个数组

我想要Keys包含 Keys1 中的任何值和Keys2的任何值的所有 文档

0 投票
3 回答
855 浏览

mongodb - 存储和访问大量数据

我的应用程序创建的数据片段在 xml 中如下所示:

这就是我现在存储这些“资源”的方式。每个 XML 文件的资源。根据需要,每个“资源”有多少个“术语”。问题是,我需要生成大约 200 万个这些资源。我已经生成了将近 500.000,我的 mac 对此并不满意。所以我的问题是:我应该如何存储这些数据?

  • 数据库?这很难,因为数据的结构不是固定的......
  • 也许将一些资源合并到更大的 XML 文件中?
  • ...?

创建数据后,我不需要更改数据。现在我正在通过该资源文件的名称访问特定资源。

任何建议都非常感谢!

0 投票
13 回答
289783 浏览

mongodb - MongoDB:如何使用单个命令更新多个文档?

我惊讶地发现以下示例代码只更新了一个文档:

我知道我可以循环并不断更新,直到它们全部改变,但这似乎非常低效。有没有更好的办法?

0 投票
3 回答
565 浏览

python - mongodb, pymongo 查询

我一直在浏览文档,但我似乎无法找到一种仅使用密钥对我的 mongodb 集合执行查找的方法。例如,假设这是我的收藏中的内容

如何仅使用键 'res1' 查询集合以获得 10 ?

0 投票
1 回答
385 浏览

mongodb - MongoDB和索引

两个问题:

  • 如果我删除集合中的所有数据 (db.mycollection.remove({})),我之前创建的索引信息会丢失吗?
  • 我应该多久(我必须有多少条目)重新创建索引?
0 投票
2 回答
1296 浏览

mongodb - MongoDB 索引需要很长时间

我有以下设置:

  • 配备 2 GB RAM 的 Mac Pro(是的,没那么多)
  • MongoDB 1.1.3 64 位
  • 单个集合中有 800 万个条目
  • 需要一个字段(整数)的索引

调用.ensureIndex(...)需要一个多小时,实际上我在那之后杀死了这个过程。我的印象是,它需要的时间太长了。此外,我终止了该过程,但之后可以看到索引.getIndexes()

有人知道这里出了什么问题吗?

0 投票
9 回答
6076 浏览

ruby-on-rails - MongoMapper 和迁移

我正在构建一个使用 MongoDB 作为后端和 MongoMapper 作为 ORM 工具的 Rails 应用程序。假设在版本 1 中,我定义了以下模型:

后来在版本 2 中,我意识到我需要模型上的新必需键。因此,在版本 2 中,SomeModel 现在看起来像这样:

如何迁移所有现有数据以包含 some_new_key?假设我知道如何为所有现有文档设置合理的默认值。更进一步,假设在版本 3 中,我意识到我真的根本不需要 some_key。所以,现在模型看起来像这样

但是我数据库中的所有现有记录都为 some_key 设置了值,此时它只是在浪费空间。我如何回收该空间?

使用 ActiveRecord,我将创建迁移以添加 some_new_key 的初始值(在 version1 -> version2 迁移中)并删除 some_key 的值(在 version2 -> version3 迁移中)。

使用 MongoDB/MongoMapper 执行此操作的适当方法是什么?在我看来,一些跟踪已运行迁移的方法仍然是必要的。这样的事情存在吗?

编辑:我认为人们错过了我的问题的重点。有时您希望能够在数据库上运行脚本来更改或重组其中的数据。我在上面给出了两个示例,一个是添加了新的必需密钥,一个是可以删除密钥并可以回收空间的示例。您如何管理运行这些脚本?ActiveRecord 迁移为您提供了一种简单的方法来运行这些脚本并确定哪些脚本已经运行以及哪些脚本尚未运行。我显然可以编写一个对数据库进行任何更新的 Mongo 脚本,但我正在寻找的是一个像迁移这样的框架,它可以让我跟踪哪些升级脚本已经运行。