一个grep可以整个数据库吗?

ant

我有一些收藏的数据库。我想从任何集合中找到所有在其任何字段中都包含特定字符串的文档。

目前,我仅出于调试目的就需要它,我可以想到一个解决方案,该方案涉及与mongodump所有文件一起转储并使用其他工具搜索这些文件。但这远非完美。

Mongo中是否有类似于grep的整个数据库功能?或者至少是grep整个收藏

尼尔·伦恩

好吧,我真的想不出任何有效的方法。我真的认为,如果您认为自己有此需要,那么您就无法正确地对解决方案建模,并且当项目应该位于单个集合中时,可能会将它们分成多个集合。您可能以为出于其他目的这样做是有原因的,但是很显然,如果您想要这种类型的查询,那不是最佳解决方案。

就像您的“文件系统grep”一样,唯一真正的选择是迭代整个集合和每个字段。因此,其操作方式与grep

db.getCollectionNames().forEach(function(colname) {
    db.getCollection(colname).find().forEach(function(doc) {
        var json = JSON.stringify( doc );
        if ( json.match(/string/) != null )
            printjson(doc);
    });
});

因此,基本上循环浏览每个集合并将每个文档作为“ JSON字符串”转储,并对字符串使用正则表达式匹配项以查看内容是否匹配。如果确实如此,则将其打印出来。

但请认真考虑一下,您在这里做什么。如果您认为您需要这种功能,那么您可能确实需要grep在单个集合中需要的所有数据然后,您可以在合理范围内使用索引,至少只要“条件”与字符串的可能开头匹配即可。

当然,您可以始终为多个字段指定“文本索引”您可以这样做:

db.collection.ensureIndex(
    { "$**": "textIndex" },
    { "name": "TextIndex" }
)

那并不能解决“多数据库”问题,因为您实际上不应该这样做。但是,应该优先选择将文档转换为JSON字符串并在其上使用正则表达式,除非匹配特别需要使用正则表达式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

一个grep可以整个数据库吗?

来自分类Dev

一个数据库连接可以有多个并行事务吗?

来自分类Dev

我可以在一个数据库操作中将列中的每个值乘以某个数字吗?

来自分类Dev

重命名整个Redis数据库或将其复制到另一个数据库?

来自分类Dev

一个同步适配器可以用于多个数据库表吗?

来自分类Dev

我可以将 JOOQ 生成的代码用于另一个数据库架构吗?

来自分类Dev

Pervasive SQL:客户端可以在一个数据库请求中发送多个 SQL 语句吗?

来自分类Dev

MySQL WorkBench:在一个sql文件中转储整个数据库

来自分类Dev

在wamp中移动一个数据库,而不是整个目录?

来自分类Dev

在整个数据库中添加一个公共列

来自分类Dev

尝试将范围选择的数据从一个数据库复制到另一个数据库;我可以加快查询速度吗?

来自分类Dev

AWS Postgres每天将数据从一个数据库复制到另一个数据库吗?

来自分类Dev

从数据库中选择只是可以获取第一个数据

来自分类Dev

我可以将数据从一个数据库表复制到另一个已经存在的数据库表sql服务器吗?

来自分类Dev

如果第一个失败,我可以连接到第二个数据库主机吗?

来自分类Dev

多个数据库,更少的表?一个数据库,很多表?

来自分类Dev

一个项目中的两个数据库是否可以有一个实体模型?

来自分类Dev

如何在整个应用程序中使用一个数据库连接对象?

来自分类Dev

我可以使用Navigation Properties加载带有表的整个数据库吗?

来自分类Dev

我的Rails 4.2.6应用程序使用两个数据库。我可以只使用一个进行测试吗?

来自分类Dev

Maya和一个数据库

来自分类Dev

如何禁用一个数据库的演变

来自分类Dev

mongodump archlinux上的一个数据库

来自分类Dev

从中选择一个数据库?

来自分类Dev

一个数据库,多种接口

来自分类Dev

如何禁用一个数据库的演变

来自分类Dev

mysql 一个或多个数据库?

来自分类Dev

MySQL从一个数据库插入另一个数据库

来自分类Dev

MySQL从一个数据库插入另一个数据库

Related 相关文章

  1. 1

    一个grep可以整个数据库吗?

  2. 2

    一个数据库连接可以有多个并行事务吗?

  3. 3

    我可以在一个数据库操作中将列中的每个值乘以某个数字吗?

  4. 4

    重命名整个Redis数据库或将其复制到另一个数据库?

  5. 5

    一个同步适配器可以用于多个数据库表吗?

  6. 6

    我可以将 JOOQ 生成的代码用于另一个数据库架构吗?

  7. 7

    Pervasive SQL:客户端可以在一个数据库请求中发送多个 SQL 语句吗?

  8. 8

    MySQL WorkBench:在一个sql文件中转储整个数据库

  9. 9

    在wamp中移动一个数据库,而不是整个目录?

  10. 10

    在整个数据库中添加一个公共列

  11. 11

    尝试将范围选择的数据从一个数据库复制到另一个数据库;我可以加快查询速度吗?

  12. 12

    AWS Postgres每天将数据从一个数据库复制到另一个数据库吗?

  13. 13

    从数据库中选择只是可以获取第一个数据

  14. 14

    我可以将数据从一个数据库表复制到另一个已经存在的数据库表sql服务器吗?

  15. 15

    如果第一个失败,我可以连接到第二个数据库主机吗?

  16. 16

    多个数据库,更少的表?一个数据库,很多表?

  17. 17

    一个项目中的两个数据库是否可以有一个实体模型?

  18. 18

    如何在整个应用程序中使用一个数据库连接对象?

  19. 19

    我可以使用Navigation Properties加载带有表的整个数据库吗?

  20. 20

    我的Rails 4.2.6应用程序使用两个数据库。我可以只使用一个进行测试吗?

  21. 21

    Maya和一个数据库

  22. 22

    如何禁用一个数据库的演变

  23. 23

    mongodump archlinux上的一个数据库

  24. 24

    从中选择一个数据库?

  25. 25

    一个数据库,多种接口

  26. 26

    如何禁用一个数据库的演变

  27. 27

    mysql 一个或多个数据库?

  28. 28

    MySQL从一个数据库插入另一个数据库

  29. 29

    MySQL从一个数据库插入另一个数据库

热门标签

归档