儘管我認爲這是一個普遍問題,但我找不到符合我需求的解決方案。Meteor/Mongo - 如何從mongo集合中找到並返回特定字段?
我有2個mongo集合。 '用戶'集合和第二個'dbInfos'。
現在,我有一個名爲'Infos'的模板,並希望在存在集合中的數據的情況下,將mongo集合中已有的字段呈現給用戶輸入字段。當數據庫中沒有提供數據時,它應該是空的。
所以這裏是我的代碼,它工作正常,直到我想捕獲第二個集合中的字段。
Template.Infos.onRendered(function() {
$('#txtName').val(Meteor.user().profile.name);
$('#txtEmail').val(Meteor.user().emails[0].address);
});
這2個工作很好。
但我不知道如何從集合'dbInfos'查詢信息,這不是'用戶'集合。顯然Meteor.user()。country不起作用,因爲它不在'用戶'集合中。也許找到({})查詢?但是,我不知道如何寫它。
$('#txtCountry').val(***query function***);
關於「dbInfos」的結構: 每個對象都有一個_id等於給用戶id加上更多領域,如國家,城市等..
{
"_id": "12345",
"country": "countryX",
"city": "cityY"
}
此外,我怎麼能保證集合中的字段爲空時什麼都不顯示?或者這是自動的,因爲它只會返回一個空字段?
任何幫助,高度讚賞。謝謝!
編輯:
我現在嘗試這樣做:
dbInfos.find({},{'country': 1, '_id': 0})
,我認爲這是正確的語法來檢索該國領域,surpress的_id字段的輸出。但是我只把[object Object]當作回報。
感謝這種方法,抱歉,我的答案來得如此之晚。雖然你的代碼幫助我通常在集合中找到一個字段,但它並不是我想要的。我認爲這種方法應該輸出Meteor.userId給我。然而,2件事情還沒有正確。首先,我不想要流星。userId()在字段中,但是「country」字段(我想我可以通過插入「country」字段來改變它,但其次,它不返回字段的值,它只返回「[object Object] 「你知道我怎樣才能得到」國家「的實際領域嗎?但是,謝謝! – Jaybruh
@Jaybruh,我增加了一個大的更新部分,我希望我正確地猜測你在哪裏被絆倒。 – zim
非常感謝你的所有但是,我嘗試了所有的解決方案,奇怪的是,它實際上可行,但不是在客戶端的$('#txtCountry')。val()字段中。 (國家:「CountryX」}。當我將代碼放入let country或var country並將其放入字段中時,我需要$('#txtCountry')。val(country) ,它只是再次將它顯示爲一個[對象對象] ...我現在將它放到超過數據庫的工作(Meteor.userId()),並將從它得到它e ...但是,謝謝! – Jaybruh