有这样一个数据结构
(比如我给3个元素,其实有几百万个)
'6444': [
{ TICKER: 'EURUSD' },
{ DTYYYYMMDD: '20030509' },
{ TIME: '142300' },
{ OPEN: '1.14888' },
{ HIGH: '1.14898' },
{ LOW: '1.14881' },
{ CLOSE: '1.14889' },
{ VOL: '835' }
],
'6445': [
{ TICKER: 'EURUSD' },
{ DTYYYYMMDD: '20030509' },
{ TIME: '142400' },
{ OPEN: '1.14886' },
{ HIGH: '1.14893' },
{ LOW: '1.14874' },
{ CLOSE: '1.14892' },
{ VOL: '889' }
],
'6446': [
{ TICKER: 'EURUSD' },
{ DTYYYYMMDD: '20030509' },
{ TIME: '142500' },
{ OPEN: '1.14886' },
{ HIGH: '1.14904' },
{ LOW: '1.14886' },
{ CLOSE: '1.14904' },
{ VOL: '772' }
]
为了从这个表(`TRADING`)和这个集合(`EUR/USD`)中至少提取一些值,我使用以下代码:
await client.connect();
const testingData = client.db('Trading').collection('EUR/USD');
const getSomeCurrencyData = await testingData.findOne({'6446': { VOL: '772' }});
问题:
- 为什么此查询不能从数据库中检索值?
- 什么请求至少可以拉出一些特定的东西?
- 为什么使用查询:
testingData.findOne('6446': [ { TICKER: 'EURUSD' }, { DTYYYYMMDD: '20030509' }, { TIME: '142500' }, { OPEN: '1.14886' }, { HIGH: '1.14904' }, {低:'1.14886'},{关闭:'1.14904'},{音量:'772'}]);
结果,我绝对得到了数据库中存在的所有值,而不仅仅是我指定的一个特定的值?
您需要首先指定'EUR/USD'集合中文档的_id,然后是过滤器...