我有一个名为 Dynamoose (DynamoDB) 的模型PromoCode
,其架构如下所示:
{
promoCode: {
hashKey: true,
type: String,
},
previouslyUsed: {
type: Boolean,
default: false,
index: {
global: true,
name: 'previouslyUsedIndex',
},
},
promoGroup: {
type: String,
index: {
global: true,
name: 'promoGroupIndex',
},
},
}
本质上,我有一张充满促销代码的表格,我想获得一个尚未使用的促销代码,并且是促销代码特定“组”的一部分。
因此,我想同时查询previouslyUsed
和promoGroup
字段并将结果限制为单个结果。这就是我想出的:
PromoCode.query('previouslyUsed').eq(false)
.and()
.filter('promoGroup').eq('friend').limit(1)
即使我知道查询应该匹配结果,这也不返回任何结果。如果我将限制增加到10,那么我会得到四个结果。这让我认为限制是在 之前发生的,and()
因此前面filter()
只过滤了10 个返回的结果 where previouslyUsed=false
。
如何在条件previouslyUsed=false
和条件promoGroup=friend
有效的情况下获取单个结果?