草庐IT

insert_or_modify

全部标签

mongodb - 皮蒙戈 : insert_many + unique index

我想在我的集合中insert_many()文件。其中一些可能与集合中的现有文档具有相同的键/值对(在我的示例中为screen_name)。我在此键上设置了唯一索引,因此出现错误。my_collection.create_index("screen_name",unique=True)my_collection.insert_one({"screen_name":"user1","foobar":"lalala"})#noproblemto_insert=[{"screen_name":"user1","foobar":"foo"},{"screen_name":"user2","foo

ruby - 用于日志数据的 MongoDB 集合 : index or not?

我正在使用MongoDB作为临时日志存储。该集合每小时接收约400,000个新行。每行包含一个UNIX时间戳和一个JSON字符串。我想定期将集合的内容复制到S3上的一个文件,每小时创建一个包含约400,000行的文件(例如,today_10_11.log包含上午10点到上午11点之间收到的所有行)。我需要在集合接收插入内容时进行此复制。我的问题:与查询一个小时的行所花费的额外时间相比,在每小时400,000次插入的时间戳列上建立索引对性能有何影响。有问题的应用程序使用Ruby编写,在Heroku上运行并使用MongoHQ插件。 最佳答案

python - 查找速度 : State or Database?

我的服务器上有一堆单词列表,我一直在计划制作一个简单的开源JSONAPI,如果密码在列表1上,它就会返回,作为验证方法。我在Python中使用Flask执行此操作,如果存在输入,实际上只是返回。一个小问题:词表总计约1.5亿个条目和1.1GB的文本。我的API(最小)如下。将每一行存储在MongoDB中并重复查找,还是使用单例将整个内容存储在内存中,并在我调用app.run时在启动时填充它更有效?或者差异是主观的?此外,做后者甚至是好的做法吗?我想如果我向公众开放,查找可能会开始变得很费力。我也有人建议Trie进行高效搜索。更新:我做了一些测试,对于如此多的记录,文档搜索速度非常慢。对

ruby - 对两个 Mongoid "any_in"查询执行 OR

如果我有两个如下所示的查询:Store.any_in(:store_id=>@user.stores_followed)Store.any_in(:store_id=>@category.stores)如何使用any_of将它们连接到OR中?我试过了,但没有。我试过了Store.any_of({:store_id.any_in=>@user.stores_followed},{:store_id.any_in=>@category.stores}) 最佳答案 看起来它在Mongoid中没有得到完全支持,所以我不得不这样做:Store

json - API 设计 : Which is better: returning null for empty values or nothing

我正在为基于MongoDB数据存储的网络应用程序设计我的第一个API。我返回json响应,我不知道如何决定,哪个更好:使用空字段或null保持一致的响应方案。或者只返回非空值。例如,当从我的Mongo上的数组中删除值时,我需要检查数组是否为空,如果是,则$unset它。 最佳答案 我更愿意避免关系模式和应用程序代码的空值;我会为NoSQL推荐相同的方法。“null”对我来说意味着“我不知道”。一个空对象说“你要求这个,但那里什么也没有。”我认为它更明确和正确。 关于json-API设计:

javascript - 如何在nodejs/MongoDB中进行OR操作查询?

我正在尝试查询我的mongodb,但我不知道我的数据在哪一行,所以我试图用参数查询两行,这个语法正确吗?db.table.find({groupA:data}||{groupB:data},function(err,records) 最佳答案 利用$or运营商。db.table.find({$or:[{"groupA":data},{"groupB":data}]},function(err,data){}) 关于javascript-如何在nodejs/MongoDB中进行OR操作查询

mongodb - 是否可以通过collection.insert()在meteor中添加多个文档?

我喜欢在meteor的集合中一次添加多个文档。MongoDB从2.2开始支持:db.collection.insert([{docNumber:1},{docNumber:2}])是否也可以在Meteor中实现这种行为?像这样的东西:myCollection.insert([{docNumber:1},{docNumber:2}])目前这将作为一个文档添加。不幸的是,我不能忍受迭代器,因为用例加载了超过100'000个文档。这对于单次插入来说会变慢。 最佳答案 Meteor还不能批量插入。尽管您可以制作一个迭代器来帮助您将文档插入数

mongodb - mongo3.0 恢复失败,错误为 Failed : restore error: insertion error: EOF

我正在尝试使用mongorestore恢复具有100个集合(800GB)的数据库,该数据库被用作mongo2.4.4的备份。我使用了以下命令:mongorestore-u-p-dbp_prod079/data/backup/2015-11-28/bp_prod079--batchSize=100我正在使用batchSize=1000,500,100来尝试让它工作。我在10-15次收集后收到插入错误。当我收到此错误时,它几乎完美地运行了将近一个半小时。Failed:restoreerror:bp_prod079.ANEpisodeBreakdown:errorrestoringfrom/

python - 插入数百万个文档 - mongo/pymongo - insert_many

mongo/pymongo的新手。目前使用最新-v3.2.2看起来insert_many没有按预期执行?我注意到,即使在为db.col.insert_many提供生成器时,内存使用量仍然会激增(这使得插入数百万个文档变得困难-尽管我确实意识到sys.mem应该>集合大小以获得最佳性能,所以实际上也许这不是我应该担心的?我的印象是,如果您将生成器传递给insert_many,那么pymongo会将插入“缓冲”到16或32mb的“block”中?手动执行此缓冲/分block可解决问题...见下文:Example1=straightinsert_many(高内存使用率-2.625GB)Exa

mysql - 如何优化递归 INSERT 和 SELECT DISTINCT mysql 查询

我有两个MySQL表WData-Clean和WData。我在WData中导入数据,每次都有很多重复记录。数据需要超时堆叠,所以无法去除重复项。在WData-Clean中,我导入WData中的所有“唯一”记录。此处示例中的唯一记录是与某些字段可能具有相同值的所有其他类似记录不同的记录。为此,我使用以下查询:INSERTINTO`WData-clean`(`field1`,`field2`,`field3`,`field4`,`field5`,`field6`)SELECTDISTINCT`field1`,`field2`,`field3`,`field4`,`field5`,`field