gpt4 book ai didi

javascript - meteor 向现有集合添加新数据

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

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

//common.js
//code shared between client and server

Books = new Mongo.Collection("user");

TabularTables = {};

Meteor.isClient && Template.registerHelper('TabularTables', TabularTables);

TabularTables.Books = new Tabular.Table({
name: "wahltable",
collection: Books,
columns: [
{data: "vname", title: "Vorname"},
{data: "nname", title: "Nachname"},
{data: "standort", title: "Standort"},
{data: "stimmen", title: "Stimmen"},
{data: "anmerkung", title: "Anmerkung"}

]
});


//app.js from the server
Meteor.startup(function () {
if (Books.find().count() === 0) {
var books = [
{vname: "Anna", nname: "Muster" ,standort: "Das Modul", stimmen:"4", anmerkung:"nichts"},
{vname: "Peter", nname: "Meier" ,standort: "BMHS", stimmen:"45", anmerkung:"nichts"},
{vname: "Max", nname: "Muster" ,standort: "BMHS", stimmen:"66", anmerkung:"nichts"},
{vname: "Moritz", nname: "Kaiser" ,standort: "BMHS", stimmen:"90", anmerkung:"nichts"},
{vname: "Niklas", nname: "König" ,standort: "BMHS", stimmen:"123", anmerkung:"nichts"},
{vname: "Victoria", nname: "Berger" ,standort: "TGM", stimmen:"90", anmerkung:"nichts"},
{vname: "Hans", nname: "Berger" ,standort: "TGM", stimmen:"90", anmerkung:"nichts"},
{vname: "Sepp", nname: "Hund" ,standort: "TGM", stimmen:"30", anmerkung:"nichts"},
{vname: "Franz", nname: "Kross" ,standort: "TGM", stimmen:"940", anmerkung:"nichts"},
{vname: "Miriam", nname: "Mayer" ,standort: "TGM", stimmen:"20", anmerkung:"nichts"},
{vname: "Sandra", nname: "Meier" ,standort: "TGM", stimmen:"12", anmerkung:"nichts"},
];
_.each(books, function (book) {
Books.insert(book);
});
}
});


CMD Snip

这是 Meteor 运行应用程序时我的 cmd 的样子,我想自动发布错误是有意义的,但我不知道如何使用此信息。

最佳答案

尝试使用写入命令 Bulk API 允许执行批量插入操作,这些操作只是服务器顶部的抽象,它们使构建批量操作变得容易。这些批量操作主要有两种形式:

  • 有序批量操作 - 这些操作按顺序执行所有操作,并在第一次写入错误时出错。
  • 无序批量操作 - 这些操作并行执行所有操作并汇总所有错误。无序批量操作不保证执行顺序。

要使用批量 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
});
}

}

});
}

关于javascript - meteor 向现有集合添加新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34897141/

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