在我的Meteor应用程序中,我在更新插入的数据时遇到问题。
在控制台中,键入MyCollection.insert({sometext: "hello"});
我为某些文本插入“hello”。现在,您可以在下面的代码中看到,带有infoOutput
的模板{{output.sometext}}
会返回我插入的内容。
我输入时在控制台中:
MyCollection.update(this._id, {sometext: "hi again"});
我回来了“未定义”。我只是想尝试更新我在数据库中为某些文本设置的字符串,这是“hello”,新字符串“hi again”或者我想要的任何其他内容。我只需要在控制台中键入内容而不是MyCollection.update(this._id, {sometext: "hi again"});
,或者如果这不是问题,我想知道是什么,以及我可以做些什么来解决它。
我很感激帮助。感谢
在我的client.js文件中,我有:
MyCollection = new Meteor.Collection('MyCollection');
if(Meteor.isClient){
Template.infooutput.output = function() {
return MyCollection.findOne();
}
}
在我的server.js文件中,我有:
MyCollection = new Meteor.Collection('MyCollection');
if (Meteor.isServer) {
}
我有一个模板:
<template name="infoOutput">
<div id="outputText">
{{output.sometext}}
</div>
</template>
然后在我的主页
<body>
{{>infoOutput}}
</body>
答案 0 :(得分:1)
在控制台中this
是窗口对象,不具有_id属性。相反,您应该获得所需的集合光标的显式引用:
var theId = MyCollection.findOne()._id;
MyCollection.update({_id: theId}, {$set: {sometext: "hi again"}});
答案 1 :(得分:0)
尝试MyCollection.update(this._id, {$set: {sometext: "hi again"}}); for size.