我想从 db 的过滤器中获取结果,但我得到了未定义的结果,我不知道为什么。
const IDD = discordsearchf
const all = (await client.db.all()).filter(data => data.id.startsWith("tickets_"));
const mfilter = all.filter(data => data.value.creator === IDD && data.value.createdAt == '1678356812821');
const efilter = mfilter.filter(data => data.value.closedBy)
console.log(efilter)
这里我没有定义:
const efilter = mfilter.filter(data => data.value.closedBy)
console.log(efilter)
这里是控制台日志 mfilter 的 cmd:
[
{
id: 'tickets_1083331733912559716',
value: {
id: 136,
category: [Object],
reason: 'No reason provided',
creator: '909068597089959976',
invited: [],
createdAt: 1678356812821,
claimed: false,
claimedBy: null,
claimedAt: null,
closed: true,
closedBy: '715637000669102171',
closedAt: 1678562559496,
acceptedby: '846304823595106304',
messageId: '1083331735191814184',
closeReason: 'No REASON'
}
}
]
我尝试了
value.closedBy
、data.value.closedBy
和mfilter.closedBy
。
[
{
id: 'tickets_1083331733912559716',
value: {
id: 136,
category: [Object],
reason: 'No reason provided',
creator: '909068597089959976',
invited: [],
createdAt: 1678356812821,
claimed: false,
claimedBy: null,
claimedAt: null,
closed: true,
closedBy: '715637000669102171',
closedAt: 1678562559496,
acceptedby: '846304823595106304',
messageId: '1083331735191814184',
closeReason: 'No REASON'
}
}
]
我又得到了这个我想像
closedBy
一样单独拿走它 - messageId
.
我认为它需要解析JSON。
尝试用这一行替换
mfilter
:
const mfilter = all.filter(data => data.value.creator === IDD && data.value.createdAt == 1678356812821);
data.value.createdAt
这是一个Number,正如我在您的代码中看到的那样,您在检查过滤条件' '
时使用了字符串引号data.value.createdAt == '1678356812821'
。const IDD = discordsearchf
const all = (await client.db.all()).filter(data => data.id.startsWith("tickets_"));
const mfilter = all.filter(data => data.value.creator === IDD && data.value.createdAt == 1678356812821);
const efilter = mfilter.filter(data => data.value.closedBy)
console.log(efilter)