Javascript 基于子元素的流星数据提取
我有一个关于出版收藏的问题。 我收集了每个文档的模型Javascript 基于子元素的流星数据提取,javascript,meteor,Javascript,Meteor,我有一个关于出版收藏的问题。 我收集了每个文档的模型 { "_id" : "8SwmMoMHTREDNDQTN", "persons" : [ { "userId" : "29pr753gmyDxQZzo6", "lastReadTime":"" }, { "userId" : "gWKbYKiQsFzdCTwkz", "lastRe
{
"_id" : "8SwmMoMHTREDNDQTN",
"persons" : [
{
"userId" : "29pr753gmyDxQZzo6",
"lastReadTime":""
},
{
"userId" : "gWKbYKiQsFzdCTwkz",
"lastReadTime":""
}
]
}
现在我想发布persons.userId具有当前用户id的文档
这是我的发布代码
Meteor.publish("chatRooms", function(){
return userData.find({persons:{$elemMatch:{userId:this.userId}}});
});
但这算不了什么
我还尝试了下面的代码
Meteor.publish("chatRooms", function(){
return userData.find({"persons.userId":this.userId});
});
但是也得到了结果数据0
我怎样才能以这种方式发布?看看有多少重复的内容(我知道我会的)。不是“查询”部分,而是因为您试图引用“当前用户”,而它实际上不在范围内。这就是问题所在。@NeilLunn:this.userId将给出meteor中当前登录的用户id,它将给出meteor.publish(“聊天室”,function(){return userData.find({“persons.userId”:this.userId});});将工作,请控制台.log(this.userId);并检查它是否存在于您的文档中。@BhaveshJariwala最后一个例子似乎是正确的。仔细检查:(1)用户是否已登录,(2)数据库是否确实包含匹配的文档,(3)文档是否已发布到客户端-打开浏览器控制台,在订阅后运行
userData.find().count()
。@DavidWeldon:我再次检查了用户是否已登录,数据库已经有匹配的数据,因为我在robomongo中使用了这个查询,并且给出了预期的结果。在控制台上,它在控制台上给出计数0