Javascript 如何搜索FS集合?
有人能帮我吗?我有一组PDF文档,我想能够搜索。 我尝试使用matteodem:easy search和MeteoHacks:search source,但它们都只处理流星收集,而不处理FS。我可以让这两个包都使用常规文本。我只想根据FS集合中的name字段返回搜索查询的结果Javascript 如何搜索FS集合?,javascript,search,meteor,collectionfs,Javascript,Search,Meteor,Collectionfs,有人能帮我吗?我有一组PDF文档,我想能够搜索。 我尝试使用matteodem:easy search和MeteoHacks:search source,但它们都只处理流星收集,而不处理FS。我可以让这两个包都使用常规文本。我只想根据FS集合中的name字段返回搜索查询的结果 "chosenFiles": function() { return filterFiles(yourFileCollection.find()); } 任何帮助都将不胜感激 如果您还没有安装reactive v
"chosenFiles": function() {
return filterFiles(yourFileCollection.find());
}
任何帮助都将不胜感激
会话
变量)搜索字符串
{{{#each chosenFiles}}
中,其中chosenFiles
是您的助手名称chosenFiles
,在其中调用搜索函数,并从文件集合中为其提供一个光标
"chosenFiles": function() {
return filterFiles(yourFileCollection.find());
}
filterFiles
函数,在该函数中,基本上可以返回searchString
并使用它过滤结果,如果searchString
为空,则返回所有内容。下面是一个使用反应式dict的示例:
var pageSession = new ReactiveDict();
filterFiles= function(cursor) {
if(!cursor) {
return [];
}
var searchString = pageSession.get("SearchString");
var raw = cursor.fetch();
// filter
var filtered = [];
if(!searchString || searchString == "") {
filtered = raw;
} else {
searchString = searchString.replace(".", "\\.");
var regEx = new RegExp(searchString, "i");
var searchFields = ["original.name", "original.type"];
filtered = _.filter(raw, function(item) {
var match = false;
_.each(searchFields, function(field) {
var value = (getPropertyValue(field, item) || "") + "";
match = match || (value && value.match(regEx));
if(match) {
return false;
}
})
return match;
});
}
return filtered;
};
searchString
定义附加到keyUp
事件,以便获得反应式搜索
"keyup .yourTextBox": function(e, t) {
var searchString = e.currentTarget.value;
switch (e.which) {
//pressing esc clear the textbox
case 27:
e.currentTarget.value = "";
pageSession.set("SearchString", "");
break;
default:
pageSession.set("SearchString", searchString);
}
我不能100%确定“original.name”是否是访问名称字段的正确方式,因为我不使用collectionFS,但似乎是这样,请在您的问题中包含一个,以便我们可以重现您的问题。请实际阅读链接页面,并确保您在问题中包含的代码是最小的(仅复制问题所需的代码,仅此而已)、完整的(复制问题所需的所有代码,仅此而已)和可验证的(我们应该能够使用您问题中的代码复制问题)。如果没有这个,您的问题对于堆栈溢出来说太广泛了。我必须添加一个新字段。metadata.name,因为original.name不起作用。我试图弄明白为什么FS Collection没有像我预期的那样返回值。非常感谢你的回答。