Buildfire - 在搜索中使用正则表达式
Buildfire - Using regex in search
我一直在查看文档,但我似乎无法弄清楚如何为 buildfire.datastore.search 正确创建 filter 对象查询。
我的对象上有一个 地址 属性,我希望能够输入部分地址并获得它 return .以下是我尝试传递到搜索查询中的过滤器对象:
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')。
我刚刚在控制端插入了以下内容:
for(let i = 0 ; i < 50 ; i++) {
buildfire.datastore.insert({
name: "Address" + i
,address: i + " " + (i % 2 ? "Main ":"4th ") + (i % 3 ? "ave":"st" )
},function(){});
}
然后像这样在小部件端进行搜索:
<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>
工作正常。如果您希望搜索更复杂,那么您需要修改 regex 语句,例如不区分大小写。
希望对您有所帮助
我一直在查看文档,但我似乎无法弄清楚如何为 buildfire.datastore.search 正确创建 filter 对象查询。
我的对象上有一个 地址 属性,我希望能够输入部分地址并获得它 return .以下是我尝试传递到搜索查询中的过滤器对象:
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')。
我刚刚在控制端插入了以下内容:
for(let i = 0 ; i < 50 ; i++) {
buildfire.datastore.insert({
name: "Address" + i
,address: i + " " + (i % 2 ? "Main ":"4th ") + (i % 3 ? "ave":"st" )
},function(){});
}
然后像这样在小部件端进行搜索:
<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>
工作正常。如果您希望搜索更复杂,那么您需要修改 regex 语句,例如不区分大小写。
希望对您有所帮助