Mongodb 流星预装
我在meteor中收集了以下内容:Mongodb 流星预装,mongodb,meteor,Mongodb,Meteor,我在meteor中收集了以下内容: CodesData = new Mongo.Collection('CodesData'); CodesDataSchema = new SimpleSchema({ code: { label: "Code", type: Number }, desc: { label: "Description", type: String, } }); CodesData
CodesData = new Mongo.Collection('CodesData');
CodesDataSchema = new SimpleSchema({
code: {
label: "Code",
type: Number
},
desc: {
label: "Description",
type: String,
}
});
CodesData.attachSchema(CodesDataSchema);
现在我想用一些数据预先填充这个集合。
例如:代码:1描述:“你好”。
如何手动轻松地执行此操作?服务器应用程序加载并启动后,您可以使用Meteor.startup在收藏上运行一些操作:
CodesData = new Mongo.Collection('CodesData');
CodesDataSchema = new SimpleSchema({ code: { label: "Code", type: Number }, desc: { label: "Description", type: String, } });
.attachSchema(CodesDataSchema);
Meteor.startup(()=>{
// Only fill if empty, otherwise
// It would fill on each startup
if (CodesData.find().count() === 0) {
CodesData.insert({ code: 1, description: 'some description' });
}
});
如果要预先填充大量数据,可以在JSON中定义并在启动时加载:
考虑以下名为pre
的json:
{
codesdata: [
{ code: 1, description: 'foo' },
{ code: 7, description: 'bar' }
]
}
Meteor.startup(()=>{
const preData = JSON.parse( pre );
preData.codesData.forEach( entry => {
CodesData.insert( entry );
});
});
这使您可以更轻松地管理预填充,还可以根据需要对json进行版本控制(并且不会显示敏感数据)
注意事项:
每次启动时都会运行函数Meteor.startup
。因此,您应该考虑如何避免不必要的插入/预填充,从而创建双倍。一个好方法是检查集合是否为空(请参见第一个示例)
您可以将启动代码放在另一个js文件中,以便将定义与启动例程分开
当前脚本不区分服务器和客户端。您应该考虑在服务器上执行此操作,并在其周围创建发布/订阅。
更多阅读资料:
服务器应用程序加载并启动后,您可以使用Meteor.startup对收藏运行一些操作:
CodesData = new Mongo.Collection('CodesData');
CodesDataSchema = new SimpleSchema({ code: { label: "Code", type: Number }, desc: { label: "Description", type: String, } });
.attachSchema(CodesDataSchema);
Meteor.startup(()=>{
// Only fill if empty, otherwise
// It would fill on each startup
if (CodesData.find().count() === 0) {
CodesData.insert({ code: 1, description: 'some description' });
}
});
如果要预先填充大量数据,可以在JSON中定义并在启动时加载:
考虑以下名为pre
的json:
{
codesdata: [
{ code: 1, description: 'foo' },
{ code: 7, description: 'bar' }
]
}
Meteor.startup(()=>{
const preData = JSON.parse( pre );
preData.codesData.forEach( entry => {
CodesData.insert( entry );
});
});
这使您可以更轻松地管理预填充,还可以根据需要对json进行版本控制(并且不会显示敏感数据)
注意事项:
每次启动时都会运行函数Meteor.startup
。因此,您应该考虑如何避免不必要的插入/预填充,从而创建双倍。一个好方法是检查集合是否为空(请参见第一个示例)
您可以将启动代码放在另一个js文件中,以便将定义与启动例程分开
当前脚本不区分服务器和客户端。您应该考虑在服务器上执行此操作,并在其周围创建发布/订阅。
更多阅读资料:
您能详细说明一下如何预填充吗?和乘以相同的值?每次都有不同的值?除了
CodesData.insert
在循环中插入什么是这里的挑战?我想预先填充它,因此如果我启动我的网站,带有描述的代码已经在数据库中了。我是meteor的新手,我不知道该怎么做,代码也非常不同,不能在一个循环中完成。我想知道我是否可以通过命令行(cmd)来实现这一点。你能详细说明一下如何预填充吗?和乘以相同的值?每次都有不同的值?除了CodesData.insert
在循环中插入什么是这里的挑战?我想预先填充它,因此如果我启动我的网站,带有描述的代码已经在数据库中了。我是meteor的新手,我不知道该怎么做,代码也非常不同,不能在一个循环中完成。我想知道我是否可以通过命令行(cmd)这样做。我得到的命令行不起作用,pre没有定义。我制作了一个pre.JSON文件,并将其放在与我的收藏相同的目录中_Codes.js:34未捕获引用错误:pre未定义=>const preData=JSON.parse(pre.JSON)请阅读有关如何在Meteor中导入JSON文件的链接。我只是提供了一个示意图方法。我犯了一个错误,忘记了“”代码:find().count()==0不起作用,它记录0,而数据库中已有元素。它不起作用,我得到的pre未定义。我制作了一个pre.JSON文件,并将其放在与我的收藏相同的目录中_Codes.js:34未捕获引用错误:pre未定义=>const preData=JSON.parse(pre.JSON)请阅读有关如何在Meteor中导入JSON文件的链接。我只是提供了一个示意图方法。我犯了一个错误,忘记了“”代码:find().count()==0不起作用,它记录0,而数据库中已经有元素