簡體   English   中英

Mongo DB-為什么我的Users.findOne未定義?

[英]Mongo DB - Why my Users.findOne is Undefined?

我正在研究Meteor,試圖從Mongodb集合中找到一些值。 這是代碼:

  var sameLogins = Users.findOne({login: 'a'}); console.log(sameLogins); 

但是它正在返回並且“未定義”。 但是記錄存在於集合中: 在此處輸入圖片說明

因此,有人可以告訴我我所缺少的嗎?

另外,在mongo控制台中-一切正常: 在此處輸入圖片說明

我一直在尋找發布/訂閱的東西,但我正在使用自動發布模塊。

謝謝!

對於有相同問題的新用戶,我將保留此問題的答案。

如果您使用的是autopublish包,則應注意,它會為每個集合發布.find()的結果。

但是,默認情況下, Meteor.users.find()將僅返回_idprofile字段,因此Meteor.users 客戶端集合中的文檔將僅具有這兩個字段。

最簡單的解決方法是創建自己的發布(例如allUsers ),並在其中返回所需的字段:

服務器:

Meteor.publish('allUsers', () => {
  // check for Meteor.userId() is omitted, put it here, if needed
  return Meteor.users.find({}, { fields: { ... } });
});

不要忘記訂閱它:

客戶:

Meteor.subscribe('allUsers');

流星更新:現在,您正在將游標存儲在變量sameLogins 為了檢索所需的結果,您實際上必須通過調用fetch()執行此查詢。 從findOne不獲取的情況下返回的本質上是一個對象,您可以使用該對象進行迭代並查找mongoDB文檔-(稱為集合游標)。 游標本身不是您的結果。

調用fetch會像這樣:

Users.findOne({login: 'a'}).fetch()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM