小编wuc*_*ang的帖子

我应该在导入转储之前还是之后建立索引?

我正在使用 mongodb 来持久化一个非常大的(90G),它有近 40,000,000 个项目。我读取并解析这个文件并将所有项目插入到 mongodb(我的编程语言是 perl,batch_insert,我将一个项目映射到一个 mongodb 文档)。

在插入之前,我已经预先创建了索引(大约 10 个索引键)。我发现插入速度不能满足我的需要(每秒 200 到 400 个项目)。我知道太多的索引键肯定会减慢我的插入速度,尤其是当集合的大小变得很大时。所以我想知道我是否可以在将所有数据转储到 db 后索引它们。

谁能告诉我这种方式是否可用,是否绝对可以节省我的时间?

index mongodb

8
推荐指数
1
解决办法
6647
查看次数

MongoDB 文本索引和文本搜索

我有一个MongoDB集合db.articles,它有2个键,“标题”和“摘要”。我想对这两个键进行文本搜索。例如,搜索文本是“物理”,我想要所有文档返回其“标题”或“摘要”包含关键字“物理”。但是如何创建文本索引以满足我的命令确实让我困惑:

我应该为它们创建两个单独的文本索引,如下所示:

db.articles.ensureIndex({title:"text"})
db.articles.ensureIndex({abstract:"text"})
Run Code Online (Sandbox Code Playgroud)

或者

我应该在单个命令中创建索引并给予相同的权重:

db.articles.ensureIndex(
                     {
                       title: "text",
                       abstract: "text",
                     },
                     {
                       weights: {
                                  title: 1,
                                  abstract:1,
                                },
                       name: "TextIndex"
                     }
                   )
Run Code Online (Sandbox Code Playgroud)

我已经习惯了find()这个操作,它的查询粒度是key,也就是说,你应该指明你要查询的key。但是对于文本索引,它就像一个文档粒度,你不能指明你要查询的key。想要查询,只能指定文档名称。那么,如果我想对某个特殊键进行文本搜索,该怎么办呢?

mongodb full-text-search

5
推荐指数
1
解决办法
2767
查看次数

数组中的 mongodb distinct()

In my mongodb database,there is only one document below:
  {
      "_id" : ObjectId("5226efc5ccf23796f9590f67"),
      "count" : NumberLong(126045),
      "eissn" : "1466-5034",
      "grade" : 0.0,
      "issn" : "1466-5026",
      "journalAlias" : ["International journal of systematic and evolutionary microbiology", "Int J Syst Evol Microbiol", "Int. J. Syst. Evol. Microbiol."],
      "journalName" : "International journal of systematic and evolutionary microbiology",
      "ccNameCount" : [{
          "ccName" : "ATCC",
          "paperCount" : 1,
          "strainCount" : 2
        }, {
          "ccName" : "ATCC",
          "paperCount" : 3,
          "strainCount" : 4
        }, {
          "ccName" : …
Run Code Online (Sandbox Code Playgroud)

mongodb array

4
推荐指数
1
解决办法
1万
查看次数

sql 语句“DELETE FROM sales”会做什么?

DELETE FROM sales;
Run Code Online (Sandbox Code Playgroud)

并且如果sales表上没有其他未提交的事务。关于该DELETE陈述,哪项陈述是正确的?

  1. 它删除表中的所有行并且删除的行不能回滚

  2. 它删除所有行以及表的结构

  3. 如果表有主键,它不会删除行

  4. 它删除表中的所有行并且可以回滚删除的行

当然,正确答案在1到4之间。我不知道删除的数据是否可以回滚。

如果有人知道,请帮助我。谢谢。

delete rollback

-3
推荐指数
1
解决办法
302
查看次数

标签 统计

mongodb ×3

array ×1

delete ×1

full-text-search ×1

index ×1

rollback ×1