标签: mongodb

如何用"喜欢"查询MongoDB?

我想查询一下SQL的like查询:

SELECT * FROM users  WHERE name LIKE '%m%'
Run Code Online (Sandbox Code Playgroud)

如何在MongoDB中做同样的事情?
like文档中找不到运算符.

sql mongodb mongodb-query sql-like

1331
推荐指数
27
解决办法
92万
查看次数

使用熊猫的"大数据"工作流程

在学习大熊猫的过程中,我试图解决这个问题的答案已有好几个月了.我使用SAS进行日常工作,这非常适合它的核心支持.然而,由于其他许多原因,SAS作为一款软件非常糟糕.

有一天,我希望用python和pandas替换我对SAS的使用,但我目前缺乏大型数据集的核心工作流程.我不是在谈论需要分布式网络的"大数据",而是说文件太大而无法容纳在内存中,但又足够小以适应硬盘驱动器.

我的第一个想法是用于HDFStore在磁盘上保存大型数据集,并仅将我需要的部分拉入数据帧进行分析.其他人提到MongoDB是一种更容易使用的替代品.我的问题是:

有哪些最佳实践工作流程可用于完成以下任务:

  1. 将平面文件加载到永久的磁盘数据库结构中
  2. 查询该数据库以检索数据以提供给pandas数据结构
  3. 在操作pandas中的片段后更新数据库

真实世界的例子将非常受欢迎,尤其是那些在"大数据"上使用熊猫的人.

编辑 - 我希望如何工作的示例:

  1. 迭代导入大型平面文件并将其存储在永久的磁盘数据库结构中.这些文件通常太大而无法放入内存中.
  2. 为了使用Pandas,我想读取这些数据的子集(通常一次只有几列),它们可以适合内存.
  3. 我将通过对所选列执行各种操作来创建新列.
  4. 然后我必须将这些新列附加到数据库结构中.

我正在尝试找到执行这些步骤的最佳实践方法.阅读关于pandas和pytables的链接似乎附加一个新列可能是个问题.

编辑 - 特别回应杰夫的问题:

  1. 我正在构建消费者信用风险模型.数据种类包括电话,SSN和地址特征; 财产价值; 犯罪记录,破产等贬损信息......我每天使用的数据集平均有近1,000到2,000个字段的混合数据类型:数字和字符数据的连续,名义和序数变量.我很少附加行,但我会执行许多创建新列的操作.
  2. 典型操作涉及使用条件逻辑将多个列组合到新的复合列中.例如,if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B'.这些操作的结果是我的数据集中每条记录的新列.
  3. 最后,我想将这些新列附加到磁盘上的数据结构中.我将重复第2步,使用交叉表和描述性统计数据探索数据,试图找到有趣,直观的模型关系.
  4. 典型的项目文件通常约为1GB.文件被组织成一种行,其中一行包括消费者数据的记录.每行对每条记录都有相同的列数.情况总是如此.
  5. 在创建新列时,我很少会按行进行子集化.但是,在创建报告或生成描述性统计信息时,对行进行子集化非常常见.例如,我可能想为特定的业务线创建一个简单的频率,比如零售信用卡.要做到这一点,除了我要报告的列之外,我只会选择那些业务线=零售的记录.但是,在创建新列时,我会提取所有数据行,只提取操作所需的列.
  6. 建模过程要求我分析每一列,寻找与某些结果变量的有趣关系,并创建描述这些关系的新化合物列.我探索的列通常以小集合完成.例如,我将专注于一组20个列,只处理属性值并观察它们与贷款违约的关系.一旦探索了这些并创建了新的列,我就转到另一组列,比如大学教育,然后重复这个过程.我正在做的是创建候选变量来解释我的数据和某些结果之间的关系.在这个过程的最后,我应用了一些学习技术,从这些复合列中创建一个方程式.

我很少会在数据集中添加行.我几乎总是会创建新的列(统计/机器学习用语中的变量或特征).

python hdf5 large-data mongodb pandas

913
推荐指数
14
解决办法
27万
查看次数

如何从命令行删除MongoDB数据库?

从我的bash提示符中最简单的方法是什么?

mongodb

831
推荐指数
11
解决办法
44万
查看次数

MongoDB与Cassandra

我正在评估什么是最好的迁移选项.

目前,我正在使用分片MySQL(水平分区),我的大部分数据都存储在JSON blob中.我没有任何复杂的SQL查询(自从我对数据库进行分区后已经迁移过了).

现在,似乎MongoDB和Cassandra都可能成为选择.我的情况:

  • 每次查询都有大量读取,而不是常规写入
  • 不担心"大规模"的可扩展性
  • 更关注简单的设置,维护和代码
  • 最大限度地降低硬件/服务器成本

database database-design mongodb cassandra

729
推荐指数
6
解决办法
30万
查看次数

如何列出mongo shell中的所有集合?

在MongoDB shell中,如何列出我正在使用的当前数据库的所有集合?

mongodb nosql mongo-shell

728
推荐指数
15
解决办法
64万
查看次数

何时在MongoDB上使用CouchDB,反之亦然

我被困在这两个NoSQL数据库之间.

在我的项目中,我将在数据库中创建一个数据库.例如,我需要一个创建动态表的解决方案.

因此用户可以创建包含列和行的表.我认为MongoDB或CouchDB对此都有好处,但我不确定是哪一个.我也需要高效的分页.

comparison performance couchdb mongodb nosql

612
推荐指数
7
解决办法
19万
查看次数

查询数组大小大于1的文档

我有一个MongoDB集合,其中包含以下格式的文档:

{
  "_id" : ObjectId("4e8ae86d08101908e1000001"),
  "name" : ["Name"],
  "zipcode" : ["2223"]
}
{
  "_id" : ObjectId("4e8ae86d08101908e1000002"),
  "name" : ["Another ", "Name"],
  "zipcode" : ["2224"]
}
Run Code Online (Sandbox Code Playgroud)

我目前可以获得与特定数组大小匹配的文档:

db.accommodations.find({ name : { $size : 2 }})
Run Code Online (Sandbox Code Playgroud)

这正确地返回name数组中包含2个元素的文档.但是,我无法执行$gt命令返回name字段数组大小超过2的所有文档:

db.accommodations.find({ name : { $size: { $gt : 1 } }})
Run Code Online (Sandbox Code Playgroud)

如何选择name大小大于1 的数组的所有文档(最好不必修改当前数据结构)?

mongodb mongodb-query

611
推荐指数
14
解决办法
33万
查看次数

何时使用MongoDB或其他面向文档的数据库系统?

我们提供视频和音频剪辑,照片和矢量图形平台.我们从MySQL开始作为数据库后端,最近包括MongoDB,用于存储文件的所有元信息,因为MongoDB更符合要求.例如:照片可能包含Exif信息,视频可能具有我们想要存储元信息的音轨.视频和矢量图形不共享任何常见的元信息,所以我知道,MongoDB非常适合存储这些非结构化数据并使其可以搜索.

但是,我们继续开发我们的平台并添加功能.现在,接下来的步骤之一将是为我们的用户提供一个论坛.现在出现的问题是:使用MySQL数据库,这是存储论坛和论坛帖子等的好选择,或者也可以使用MongoDB吗?

所以问题是:何时使用MongoDB以及何时使用RDBMS.你会选择什么,mongoDB或MySQL,如果你有选择,为什么要接受它?

mysql mongodb

507
推荐指数
8
解决办法
12万
查看次数

MongoDB关系:嵌入还是引用?

我是MongoDB的新手 - 来自关系数据库背景.我想设计一个带有一些注释的问题结构,但我不知道用于评论的关系:embed或者reference

有一些注释的问题,比如stackoverflow,会有这样的结构:

Question
    title = 'aaa'
    content = bbb'
    comments = ???
Run Code Online (Sandbox Code Playgroud)

首先,我想使用嵌入式注释(我认为embed在MongoDB中推荐),如下所示:

Question
    title = 'aaa'
    content = 'bbb'
    comments = [ { content = 'xxx', createdAt = 'yyy'}, 
                 { content = 'xxx', createdAt = 'yyy'}, 
                 { content = 'xxx', createdAt = 'yyy'} ]
Run Code Online (Sandbox Code Playgroud)

很清楚,但我担心这种情况:如果我想编辑指定的评论,我该如何获取其内容及其问题?没有_id让我找到一个,也没有question_ref让我找到它的问题.(我是新手,我不知道如果没有_id和没有任何方法可以做到这一点question_ref.)

我必须用refembed?然后我必须创建一个新的评论集合?

embed reference mongodb

494
推荐指数
9
解决办法
15万
查看次数

默认情况下,在MongoDB shell中打印漂亮

有没有办法告诉Mongo漂亮的打印输出?目前,所有内容都输出到一行,并且难以阅读,尤其是嵌套数组和文档.

command-line-interface mongodb mongo-shell

490
推荐指数
7
解决办法
13万
查看次数