gpt4 book ai didi

mongodb - Meteor MongoDB 查找/获取问题

转载 作者:可可西里 更新时间:2023-11-01 10:04:29 26 4
gpt4 key购买 nike

Meteor.publish('polls', function () { 
return Polls.find({});
});

Meteor.publish('recentPolls', function() {
return Polls.find({}, {sort: {date: -1}, limit: 10}).fetch();
});

所以这是在我的文档中的 /server/server.js 文件中,它说 fetch() 方法返回数组中的匹配文档。但是,像这样在客户端使用订阅功能

Template.recentPolls.polls = function() {
console.log(Meteor.subscribe('recentPolls'));
return Meteor.subscribe('recentPolls');
}

出于某种奇怪的原因,这将返回以下对象(不是数组)而是一个对象

Object {stop: function, ready: function}

这是我在控制台中得到的错误。

Exception from sub 5NozeQwianv2DL2eo Error: Publish function returned an array of non-Cursors

最佳答案

fetch 返回对象数组,这不是从发布函数返回的合法值。

发布函数只能返回一个游标、一个游标数组或一个假值。要修复您的错误,只需删除 fetch:

return Polls.find({}, {sort: {date: -1}, limit: 10});

在客户端上,您不想在模板内部订阅。您想要订阅一次(通常在名为 client/subscriptions.js 的文件中)或在您的路由内部(参见 iron-router documentation )。

忽略 subscribe 返回的任何内容。调用subscribe 只是让服务器向客户端同步数据。调用的结果不是数据本身。

要从您的模板访问您的数据,只需使用另一个查找,例如:

Template.recentPolls.polls = function() {
Polls.find({}, {sort: {date: -1}});
}

关于mongodb - Meteor MongoDB 查找/获取问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22119873/

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