我一直在查看文档,但我似乎无法弄清楚如何为 buildfire.datastore.search 查询正确创建过滤器对象。< / p>
我的对象上有地址属性,我希望能够键入部分地址并让它返回。以下是我尝试传递给搜索查询的过滤器对象:
search = {filter: {"$json.address": {"$regex": `/${this.state.search}/`}}};
search = {filter: {'$regex': {'$json.address': this.state.search}}};
两者都没有奏效。最终目标是:
buildfire.datastore.search(search, 'location', cb);
修改
我甚至试图在文档中对正则表达式进行硬编码:
"$or" : [
{"description": {"$regex":"/new /"}}
]
并且它不起作用(我用我知道会显示的字符串替换'new'。)
答案 0 :(得分:1)
我刚在控制端插入以下内容:
<body>
<input type="text" id="criteria" /><button onclick="search()">Search</button>
<div id="results"></div>
<script>
function search(){
var cri = document.getElementById("criteria").value;
buildfire.datastore.search( {filter:{"$json.name": {"$regex": cri } } } , function(err,results){
document.getElementById("results").innerHTML = JSON.stringify(results);
});
}
</script>
</body>
然后在小部件方面进行搜索:
file = fopen('file.txt');
out = textscan(file, '%s', 'Delimiter', '\n');
parsed = cellfun(@(x) textscan(x, '/%c/%s %d'), out{1}, 'uniformoutput', false);
parsed = cellfun(@(x) x{2}, parsed, 'uniformoutput', false);
fclose(file);
工作正常。如果您希望搜索更复杂,那么您需要修改正则表达式语句,例如不区分大小写。
希望这有帮助