Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript meteor将新数据添加到现有集合_Javascript_Html_Mongodb_Meteor_Tabular - Fatal编程技术网

Javascript meteor将新数据添加到现有集合

Javascript meteor将新数据添加到现有集合,javascript,html,mongodb,meteor,tabular,Javascript,Html,Mongodb,Meteor,Tabular,我目前正在Meteor中开发一个应用程序,从MongoDB的一个集合中读取数据,当然,我在其中输入数据,并将这些数据保存到一个表格中。 但问题是,第一次启动应用程序后,表中的数据不会刷新,只有表头会刷新,条目不会刷新。 这是我目前拥有的代码 //common.js //客户端和服务器之间共享的代码 图书=新的Mongo.收藏(“用户”); 表格表={}; Meteor.isClient&&Template.registerHelper('tabletables',tabletables); t

我目前正在Meteor中开发一个应用程序,从MongoDB的一个集合中读取数据,当然,我在其中输入数据,并将这些数据保存到一个表格中。 但问题是,第一次启动应用程序后,表中的数据不会刷新,只有表头会刷新,条目不会刷新。 这是我目前拥有的代码

//common.js
//客户端和服务器之间共享的代码
图书=新的Mongo.收藏(“用户”);
表格表={};
Meteor.isClient&&Template.registerHelper('tabletables',tabletables);
tabletables.Books=新的Tabular.Table({
名称:“沃尔表”,
收藏:书籍,
栏目:[
{数据:“vname”,标题:“Vorname”},
{数据:“nname”,标题:“Nachname”},
{数据:“标准”,标题:“标准”},
{数据:“史提曼”,标题:“史提曼”},
{数据:“安默孔”,标题:“安默孔”}
]
});
//来自服务器的app.js
Meteor.startup(函数(){
if(Books.find().count()==0){
var账簿=[
{V名称:“安娜”,nname:“集合”,standort:“模块”,stimmen:“4”,anmerkung:“nichts”},
{名称:“彼得”,名称:“梅尔”,标准:“BMH”,标准:“45”,安默尔贡:“尼克”},
{vname:“Max”,nname:“Muster”,standort:“BMHS”,stimmen:“66”,anmerkung:“nichts”},
{名称:“莫里茨”,名称:“凯撒”,标准:“BMH”,标准:“90”,安默尔贡:“尼希茨”},
{vname:“Niklas”,nname:“König”,standort:“BMHS”,stimmen:“123”,anmerkung:“nichts”},
{名称:“维多利亚”,名称:“伯杰”,标准:“TGM”,标准:“90”,anmerkung:“nichts”},
{名称:“汉斯”,名称:“伯杰”,标准:“TGM”,标准:“90”,anmerkung:“nichts”},
{名称:“Sepp”,名称:“Hund”,标准:“TGM”,标准:“30”,anmerkung:“nichts”},
{名称:“弗兰兹”,名称:“克罗斯”,标准:“TGM”,标准:“940”,安默尔贡:“尼希茨”},
{V名称:“米里亚姆”,nname:“迈耶”,标准:“TGM”,标准:“20”,anmerkung:“nichts”},
{名称:“桑德拉”,名称:“梅尔”,标准:“TGM”,标准:“12”,anmerkung:“nichts”},
];
_.每本书{
书籍。插入(书籍);
});
}

});尝试使用write命令,该命令允许执行大容量插入操作,而大容量插入操作只是服务器顶部的抽象,可以轻松构建大容量操作。这些批量操作主要有两种口味:

  • 有序大容量操作-这些操作按顺序执行所有操作,并在第一次写入错误时出错
  • 无序批量操作-这些操作并行执行所有操作并汇总所有错误。无序的批量操作不能保证执行顺序
要使用批量api,您需要通过Mongo.collection上的rawCollection和rawDatabase方法获得对npm MongoDB驱动程序中集合和数据库对象的原始访问权

以下内容说明了这种方法:

Books = new Meteor.Collection('books');

if (Meteor.isServer) {
    Meteor.startup(function () {
        if (Books.find({}).count() === 0) {
            var bulkOp = Books.rawCollection().initializeUnorderedBulkOp(),
                counter = 0,
                books = [...]; // the books data array, shortened for brevity

            _.each(books, function (book) {

                bulkOp.insert(book);

                counter++;
                if (counter % 1000 == 0) {
                    // Execute per 1000 operations and re-initialize every 1000 update statements
                    bulkOp.execute(function(e, rresult) {
                        // do something with result
                    });
                    bulkOp = Books.rawCollection().initializeUnorderedBulkOp();
                }
            }); 

            // Clean up queues
            if (counter % 1000 != 0){
                bulkOp.execute(function(e, result) {
                    // do something with result
                });
            }

        }

    });
}

嘿,谢谢你的快速回答,我像你上面告诉我的那样写了我的代码,但似乎没有帮助。它似乎会自动加载数据库条目,并在启动时将它们放入列中。是否有类似updateOnStartup()或refresh()的方法可以用于解决此类问题?