无法从数据库中检索值
Unable to retrieve value from database
有这么一个数据结构
(比如我给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' }
]
为了从这个 table (`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': [
{ 股票行情:'EURUSD' },
{ DTYYYYMMDD: '20030509' },
{时间:'142500'},
{ 打开: '1.14886' },
{ 高: '1.14904' },
{低:'1.14886'},
{关闭:'1.14904'},
{ 卷:'772' }
]);
结果,我得到了数据库中存在的所有值,而不仅仅是我指定的一个特定值?
首先简单地使用 ID 查找文档并确保您的数据库连接和集合选择有效。如果可行,请尝试这样查询
const getSomeCurrencyData = await testingData.findOne({'6446.VOL': '772' });
如果以上建议可行,就可以了
与其传递数组来寻找匹配项,不如尝试这样。
testingData.findOne({
"6446.TICKER": 'EURUSD',
"6446.DTYYYYMMDD": '20030509',
"6446.TIME": '142500',
"6446.OPEN": '1.14886',
"6446.HIGH": '1.14904',
"6446.LOW": '1.14886',
"6446.CLOSE": '1.14904',
“6446.VOL”:'772'
});
有这么一个数据结构
(比如我给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' }
]
为了从这个 table (`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': [ { 股票行情:'EURUSD' }, { DTYYYYMMDD: '20030509' }, {时间:'142500'}, { 打开: '1.14886' }, { 高: '1.14904' }, {低:'1.14886'}, {关闭:'1.14904'}, { 卷:'772' } ]);
结果,我得到了数据库中存在的所有值,而不仅仅是我指定的一个特定值?
首先简单地使用 ID 查找文档并确保您的数据库连接和集合选择有效。如果可行,请尝试这样查询
const getSomeCurrencyData = await testingData.findOne({'6446.VOL': '772' });如果以上建议可行,就可以了
与其传递数组来寻找匹配项,不如尝试这样。
testingData.findOne({ "6446.TICKER": 'EURUSD', "6446.DTYYYYMMDD": '20030509', "6446.TIME": '142500', "6446.OPEN": '1.14886', "6446.HIGH": '1.14904', "6446.LOW": '1.14886', "6446.CLOSE": '1.14904', “6446.VOL”:'772' });