MongoDB支持批量插入http://docs.mongodb.org/manual/core/bulk-
inserts/
我已经在流星收藏中尝试过:
Orders.insert([
{ "cust_id" : "A123", "amount" : 500, "status" : "A", "_id" : "iZXL7ewBDALpic8Fj" },
{ "cust_id" : "A123", "amount" : 250, "status" : "A", "_id" : "zNrdBAxxeNZQ2yrL9" },
{ "cust_id" : "B212", "amount" : 200, "status" : "A", "_id" : "vev3pjJ8cmiDHHxe4" },
{ "cust_id" : "A123", "amount" : 300, "status" : "D", "_id" : "BBLngRhS76DgeHJQJ" }
]);
但是它创造了
{ "0" : { "cust_id" : "A123", "amount" : 500, "status" : "A", "_id" : "iZXL7ewBDALpic8Fj"},
"1" : { "cust_id" : "A123", "amount" : 250, "status" : "A", "_id" : "zNrdBAxxeNZQ2yrL9" },
"2" : { "cust_id" : "B212", "amount" : 200, "status" : "A", "_id" : "vev3pjJ8cmiDHHxe4" },
"3" : { "cust_id" : "A123", "amount" : 300, "status" : "D", "_id" : "BBLngRhS76DgeHJQJ" },
"_id" : "6zWayeGtQCdfS65Tz" }
我需要它来进行性能测试。我需要用数千个测试项目填充和测试数据库。我确实在foreach中进行了插入,但是填充数据库所需的时间太长。
这里有什么解决方法吗?还是可以期望Meteor在下一个版本中支持此功能?
您可以使用exec(nodejs
docs
)Meteor.startup
在服务器上的流星内部运行mongo脚本。
例:
Meteor.startup(function () {
var exec = Npm.require('child_process').exec;
exec('mongo localhost:27017/meteor path-to/my-insert-script.js', function ( ) {
// done
});
});
不是最佳选择,但我认为这是您目前最好的选择。您还可以--eval
在exec中对Mongo
使用命令行选项,并将insert语句作为字符串传递给exec。可能看起来像这样:
Meteor.startup(function () {
var exec = Npm.require('child_process').exec;
exec('mongo localhost:27017/meteor --eval \'db.Orders.insert(' + JSON.stringify(arrOfOrders) + ')\'', function ( ) {
// done
});
});
问题内容: 我有一个存储在典型MySQL数据库中的表,并且已经使用java构建了一个小型解析器工具,以解析并构建neo4j数据库。该数据库将具有约4000万个节点,每个节点具有一个或多个边缘(最多可能有10个边缘)。问题来自我必须创建某些节点的方式。有一个用户节点,评论节点和标签节点。用户节点和主题标签节点必须各自唯一。我正在使用以下示例中的代码来确保唯一性: } 我已经考虑过使用批处理插入器,但
问题内容: 我正在尝试通过node.js将一些syslog数据流式传输到Meteor集合中。它工作正常,但是Meteor客户端的轮询周期大约为10秒,对于我的品味来说,这个周期太长了- 我希望大约1秒。 通过控制台进行客户端集合插入的速度很快,并且所有客户端都在使用DDP,因此可以立即进行更新。但是从服务器端直接进行MongoDB插入将受客户端的轮询周期影响。 因此,目前看来,我只限于使用DDP从
问题内容: 在MS SQL上,我可以使用以下sql命令进行批量插入: 现在我想在MySQL上做同样的事情,但是我似乎无法弄清楚它是如何工作的以及使用什么查询。 问题答案: 在MySQL中,等效项为 加载数据文件 http://dev.mysql.com/doc/refman/5.1/en/load- data.html
问题内容: 有没有办法像在MySQL服务器上那样批量执行查询? 将无法使用,因为如果该字段已经存在,它将直接忽略该字段并且不插入任何内容。 将无法工作,因为如果该字段已经存在,它将首先对其进行处理,然后再次进行处理,而不是对其进行更新。 可以使用,但不能批量使用。 因此,我想知道是否可以批量发出这样的命令(一次不止一次发送)。 问题答案: 您 可以 使用INSERT … ON DUPLICATE
我在做一个程序,没有使用Java的内置链表类;我在从头开始做。除了编写一个将节点插入链表的特定位置的方法外,我在所有方面都取得了成功。 我有一个方法将一个特定的节点设置为“当前”节点。所以,例如,我有一个链表,看起来是这样的:猫-->狗-->使-->好-->宠物,“当前”等于2;这意味着“当前”节点是“狗”。 从这里开始,假设我想在“current”的位置插入一个新节点,它的info字段为AND。
我正在写一个数据挖掘程序,可以批量插入用户数据。 当前SQL只是一个普通的批量插入: 如果发生冲突,如何进行更新?我试过: 但它抛出