当应用字段:{field:1}时,Collection.find返回的结果较少

时间:2014-08-27 11:00:31

标签: meteor

我正在尝试过滤发送给客户端的数据。

characterFields = {
    _id: 1
    userId: 1
}

Meteor.publish 'nearbyCharacters', ->
    Characters.find({}, fields: {characterFields} )

但是,当我包含字段时:在find方法中,如果我执行

,则返回的结果较少
Meteor.publish 'currentCharacter', ->
    Characters.find()

返回正确的数据,但未过滤

2 个答案:

答案 0 :(得分:0)

如果你试图得到它所以它只显示_id字段,请确保将第一个参数保留为空,因为它用于查询(我假设它是所有记录,对吧?):

Meteor.publish "currentCharacter", ->
  Characters.find {},
    fields: characterFields

答案 1 :(得分:0)

很遗憾,我无法重现您的问题。

我使用以下js创建了一个裸流星0.9.0项目(没有自动发布):

Characters = new Meteor.Collection("items")
if Meteor.isClient
  Meteor.subscribe "items", ->
    console.log Characters.find().fetch()
    return

if Meteor.isServer
  Meteor.publish "items", ->
    Characters.find {},
      fields:
        userId: 1


  unless Characters.find().fetch().length
    Characters.insert userId: 1
    Characters.insert userIdNaN: 1

在客户端上,两个条目都按预期列出:

enter image description here

因此,我认为您的问题可能存在于其他地方,可能与同一集合的多个发布有关,或者多个订阅同一个发布。