我意识到这可能与其他帖子非常接近,但我不能让这个坚持到我的脑海! :(我需要一些帮助,试图了解如何使用.find()
或者我应该使用.findOne()
?(如此困惑)收集我的。
目标:
我希望从People
集合中获取所有文档,然后为每个文档创建一个新的<option>
,其中.name
放入文本和集合{{ 1}}是值。
收集来自Mongo
._id
我的模板助手:
db.people.find()
{ "_id" : "1", "name" : "John" }
{ "_id" : "2", "name" : "Mike" }
{ "_id" : "3", "name" : "George" }
{ "_id" : "4", "name" : "Jane" }
我的模板:
Template.view_Admin_Staff.people = function() {
console.log( 'people : ', People.find() );
return People.find();
};
在帮助程序中找到的 <select id="ddStaffID" name="staff">
<option value="">-- Select One --</option>
{{#each people}}
<option value="{{_id}}">{{name}}</option>
{{/each}}
</select>
会返回console.log
。我错过了什么?
答案 0 :(得分:1)
我假设你的收藏品是People = new Meteor.Collectin('people');并且html中的模板名称是
当您在模板帮助程序中执行控制台登录时,您将记录游标本身,而不是文档。您可以在(https://www.eventedmind.com/tracks/feed-archive/how-do-client-cursors-work)找到有关光标的更多信息。
要查看是否返回了正确的数据,可以在游标上使用.fetch方法。 Fetch将根据您的查询返回一个对象数组。在您的情况下,查询为空,fetch方法应返回客户端数据库中可用的所有内容。
在标题中回答您的问题。 find和findOne都是Collection对象上可用的方法。
找到返回光标。如果有与您的查询匹配的记录,findOne将返回AN对象。
答案 1 :(得分:0)
血性-h3ll!警告我们所有人n00bs ...必须订阅您的出版物才能看到并使用您的出版物。 叹息
我的初始帖子中的代码按预期工作。我只是忘了在我的客户端路线中订阅我的出版物中的曝光数据。 </foreheadSlap>
我是新手,对我的查询技能提出了质疑,甚至没有对代码中的任何后续问题进行故障排除。感谢@Bozhao和@DavidWeldon的快速回复。