我正在用username搜索meteor.users
集合。在Meteor.users中用戶名全文搜索
我已按照詳細的步驟here,但我似乎無法使其工作meteor.users
。
這裏是我對這些代碼:
服務器啓動:
Meteor.startup(function(){
Meteor.users._ensureIndex({
"username":"text",
});
});
在我的發佈功能:
Meteor.publish("Meteor.users.userSearch",function(searchVal){
if(!searchVal){
return Meteor.users.find({});
}
return Meteor.users.find({$text:{$search:searchVal}});
});
在客戶端:
Template.foo.helpers({
users(){
var searchValue = Session.get('searchVal');
Meteor.subscribe('Meteor.users.userSearch',searchValue);
return Meteor.users.find({});
}
});
有人可以請求e幫我弄清楚上面有什麼問題?
當沒有searchValue
時,它工作正常,所有用戶都返回。只要有任何搜索值,就根本沒有用戶返回。
我也直接嘗試在mongodb控制檯db.users.find({$text:{$search:"some_test"}})
並且沒有收集對象返回。
您的代碼似乎沒問題。我認爲這個問題是你的搜索值,Mongo搜索的單詞或短語不是字符 – Khang
你試過在你的幫手外面移動你的sub: Template.template.onCreated(function(){ this.autorun(function(){ var searchValue = Session.get('searchVal'); Meteor.subscribe('Meteor.users.userSearch',searchValue); }) –
@Khang ouuh是的,這是問題感謝您找出它!只要我寫下一個完整的用戶名,它就會彈出...你會知道一種按角色搜索的方法嗎? (我試圖做的是有一個動態搜索的'''searchVal'''''''''''''''更新!) – EugVal