Query with exists() gives error
mataide opened this issue · comments
I got this error when try to do the follow query:
Query:
Room.query('running')
.usingIndex('status-index')
.where('gameId').exists()
.exec(function (err, roomList) {
Error:
Room.query(...).usingIndex(...).where(...).exists is not a function
Object:
Room = _dynogels2.default.define('Room-' + [constants.STAGE], {
hashKey: 'id',
timestamps: true,
tableName: 'Room-' + [constants.STAGE],
schema: _joi2.default.object({
id: _dynogels2.default.types.uuid(),
title: _joi2.default.string().trim().required(),
game: _joi2.default.string().trim().lowercase().required(),
mode: _joi2.default.string().trim().lowercase().required(),
gameType: _joi2.default.string().trim().lowercase().required(),
stake: _joi2.default.string().trim().lowercase().required(),
money: _joi2.default.string().trim().lowercase().required(),
stakeValue: _joi2.default.number().required(),
buyin: _joi2.default.number().required(),
rake: _joi2.default.number().required(),
players: _joi2.default.number().default(0),
maxPlayers: _joi2.default.number().required(),
watchers: _joi2.default.number().default(0),
maxWatchers: _joi2.default.number().required(),
gameId: _joi2.default.string().trim(),
region: _joi2.default.string().trim().lowercase().required(),
status: _joi2.default.string().trim().lowercase().default("open")
}).unknown(true).options({ stripUnknown: true }),
indexes : [{
hashKey : 'status', rangeKey : 'game', name : 'status-index', type : 'global'
}]
});
.where()
is for range key conditions, which do not support .exists()
(keys must exist, so this query would be redundant). gameId
isn't even a key for this object, so you can't use .where()
on it.
You want .filter('gameId').exists()
.