gpt4 book ai didi

node.js - 在 Meteor 或 Node 中批量插入 mongodb

转载 作者:可可西里 更新时间:2023-11-01 09:57:25 24 4
gpt4 key购买 nike

MongoDB 支持批量插入 http://docs.mongodb.org/manual/core/bulk-inserts/

我在Meteor collection中试过:

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 内运行 meteor 内的 mongo 脚本。

例子:

Meteor.startup(function () {
var exec = Npm.require('child_process').exec;
exec('mongo localhost:27017/meteor path-to/my-insert-script.js', function ( ) {
// done
});
});

不是最佳选择,但我认为这是目前最好的选择。您还可以在 exec 中对 Mongo 使用命令行选项 --eval 并将插入语句作为字符串传递给 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
});
});

关于node.js - 在 Meteor 或 Node 中批量插入 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19757434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com