feat(node): add where method to query builder (#183)

Closes #181
This commit is contained in:
gsilvestrin
2023-06-14 10:54:43 -07:00
committed by GitHub
parent 6b5c046c3b
commit f65d85efcc
2 changed files with 13 additions and 4 deletions

View File

@@ -293,6 +293,8 @@ export class Query<T = number[]> {
return this
}
where = this.filter
/** Return only the specified columns.
*
* @param value Only select the specified columns. If not specified, all columns will be returned.

View File

@@ -64,13 +64,20 @@ describe('LanceDB client', function () {
assert.equal(results[0].id, 1)
})
it('uses a filter', async function () {
it('uses a filter / where clause', async function () {
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
const assertResults = (results: Array<Record<string, unknown>>) => {
assert.equal(results.length, 1)
assert.equal(results[0].id, 2)
}
const uri = await createTestDB()
const con = await lancedb.connect(uri)
const table = await con.openTable('vectors')
const results = await table.search([0.1, 0.1]).filter('id == 2').execute()
assert.equal(results.length, 1)
assert.equal(results[0].id, 2)
let results = await table.search([0.1, 0.1]).filter('id == 2').execute()
assertResults(results)
results = await table.search([0.1, 0.1]).where('id == 2').execute()
assertResults(results)
})
it('select only a subset of columns', async function () {