本主题说明如何使用 IndexedDB 在搜索词结尾处使用通配符。
我正在寻找一种在搜索词的末尾和开头添加通配符的方法。在 SQL 中它将是:LIKE '%SearchTerm%'
.
如何使用 IndexedDB 实现这一目标?这是我的代码:
function getMaterials() {
var materialNumber = $("#input").val();
var transaction = db.transaction(["materials"]);
var objectStore = transaction.objectStore("materials");
var request = objectStore.openCursor(IDBKeyRange.bound(materialNumber, materialNumber + '\uffff'), 'prev');
$("#output").find("tr:gt(0)").remove();
request.onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
var newRow = '<tr><td>'+ cursor.value.materialNumber +'</td>'+
'<td>'+ cursor.value.description +'</td>'+
'<td>'+ cursor.value.pieces +'</td>'+
'<td>'+ cursor.value.price +'</td></tr>';
$('#output').append(newRow);
cursor.continue();
}
};
};
编辑:
我可以通过让 indexDB 返回所有行然后在 JavaScript 中缩小范围来实现这一点。但是在性能方面必须有更好的方法。
if (cursor.value.materialNumber.indexOf(materialNumber) != -1){
//add result...
}