Node.js 在mongodb中显示集合中的特定数据

Node.js 在mongodb中显示集合中的特定数据,node.js,mongodb,express,Node.js,Mongodb,Express,大家好,我是mongodb的新手,当我尝试在收藏中查找时遇到了一些问题,我希望有人能帮助我 假设我有以下收藏: { columns:[ 'Divisa', '05/10/2015', '02/10/2015', '01/10/2015', '30/09/2015', '29/09/2015', '28/09/2015', '25/09/2015', '24/09/2015', ], data:[ {

大家好,我是mongodb的新手,当我尝试在收藏中查找时遇到了一些问题,我希望有人能帮助我

假设我有以下收藏:

{
columns:[
    'Divisa',
    '05/10/2015',
    '02/10/2015',
    '01/10/2015',
    '30/09/2015',
    '29/09/2015',
    '28/09/2015',
    '25/09/2015',
    '24/09/2015',
    ],
data:[
        {
            'Divisa':'USD',
            '05/10/2015':'11236',
            '02/10/2015':'1116',
            '01/10/2015':'11153',
            '30/09/2015':'11203',
            '29/09/2015':'11204',
            '28/09/2015':'1117',
            '25/09/2015':'11151',
            '24/09/2015':'11241'            
    },
    {
            'Divisa':'BGD',
            '05/10/2015':'19558',
            '02/10/2015':'19558',
            '01/10/2015':'19558',
            '30/09/2015':'19558',
            '29/09/2015':'19558',
            '28/09/2015':'19558',
            '25/09/2015':'19558',
            '24/09/2015':'19558'                
    },
    {
            'Divisa':'CYP',
            '05/10/2015':'0',
            '02/10/2015':'0',
            '01/10/2015':'0',
            '30/09/2015':'0',
            '29/09/2015':'0',
            '28/09/2015':'0',
            '25/09/2015':'0',
            '24/09/2015':'0'                
    }               
    ]
}
现在我想在exmample的集合中查找一些内容:

A-我想按日期范围从2015年10月5日到2015年10月1日进行所有货币搜索,然后我需要返回如下内容:

{
columns:[
    'Divisa',
    '05/10/2015',
    '02/10/2015',
    '01/10/2015',       
    ],
data:[
        {
            'Divisa':'USD',
            '05/10/2015':'11236',
            '02/10/2015':'1116',
            '01/10/2015':'11153',               
    },
    {
            'Divisa':'BGD',
            '05/10/2015':'19558',
            '02/10/2015':'19558',
            '01/10/2015':'19558',               
    },
    {
            'Divisa':'CYP',
            '05/10/2015':'0',
            '02/10/2015':'0',
            '01/10/2015':'0',               
    }               
    ]
}
我想知道查找的结构是什么,我需要使用它来获得类似的结果

B-我还需要知道如何查找并返回与某一货币相关的所有信息,例如,我希望searh所有与“USD”货币相关的信息,我需要返回类似的信息:

 columns:[
        'Divisa',
        '05/10/2015',
        '02/10/2015',
        '01/10/2015',
        '30/09/2015',
        '29/09/2015',
        '28/09/2015',
        '25/09/2015',
        '24/09/2015',
        ],
    data:[
            {
                'Divisa':'USD',
                '05/10/2015':'11236',
                '02/10/2015':'1116',
                '01/10/2015':'11153',
                '30/09/2015':'11203',
                '29/09/2015':'11204',
                '28/09/2015':'1117',
                '25/09/2015':'11151',
                '24/09/2015':'11241'            
        }           
        ]
    }
{
columns:[
    'Divisa',
    '05/10/2015',
    '02/10/2015',
    '01/10/2015',
    '30/09/2015',
    '29/09/2015',
    '28/09/2015',
    '25/09/2015',
    '24/09/2015',
    ],
data:[
        {
            'Divisa':'USD',
            '05/10/2015':'11236',
            '02/10/2015':'1116',
            '01/10/2015':'11153',
            '30/09/2015':'11203',
            '29/09/2015':'11204',
            '28/09/2015':'1117',
            '25/09/2015':'11151',
            '24/09/2015':'11241'            
    },
    {
            'Divisa':'CYP',
            '05/10/2015':'0',
            '02/10/2015':'0',
            '01/10/2015':'0',
            '30/09/2015':'0',
            '29/09/2015':'0',
            '28/09/2015':'0',
            '25/09/2015':'0',
            '24/09/2015':'0'                
    }               
    ]
}
我想知道查找的结构是什么,我需要使用它来获得类似的结果

最后,我需要知道一个查找如何返回与某个值相关的所有信息,例如,我想搜索值为0的所有信息,在12000之间,我需要返回类似于:

 columns:[
        'Divisa',
        '05/10/2015',
        '02/10/2015',
        '01/10/2015',
        '30/09/2015',
        '29/09/2015',
        '28/09/2015',
        '25/09/2015',
        '24/09/2015',
        ],
    data:[
            {
                'Divisa':'USD',
                '05/10/2015':'11236',
                '02/10/2015':'1116',
                '01/10/2015':'11153',
                '30/09/2015':'11203',
                '29/09/2015':'11204',
                '28/09/2015':'1117',
                '25/09/2015':'11151',
                '24/09/2015':'11241'            
        }           
        ]
    }
{
columns:[
    'Divisa',
    '05/10/2015',
    '02/10/2015',
    '01/10/2015',
    '30/09/2015',
    '29/09/2015',
    '28/09/2015',
    '25/09/2015',
    '24/09/2015',
    ],
data:[
        {
            'Divisa':'USD',
            '05/10/2015':'11236',
            '02/10/2015':'1116',
            '01/10/2015':'11153',
            '30/09/2015':'11203',
            '29/09/2015':'11204',
            '28/09/2015':'1117',
            '25/09/2015':'11151',
            '24/09/2015':'11241'            
    },
    {
            'Divisa':'CYP',
            '05/10/2015':'0',
            '02/10/2015':'0',
            '01/10/2015':'0',
            '30/09/2015':'0',
            '29/09/2015':'0',
            '28/09/2015':'0',
            '25/09/2015':'0',
            '24/09/2015':'0'                
    }               
    ]
}

我想知道查找的结构是什么,我需要使用它来获得类似的结果。

您这样做完全错误,不应该像您在这里所做的那样使用“数据”作为键名。MongoDB无法查询“键”,当然也无法以任何有效的方式为该结构生成所需的结果。你真正需要实现什么?这里需要的似乎是为您的真正目的而进行的重组。这似乎是exchange数据。你能不能简单地将数据存储为{'seriesdate':'24/09/2015','exchange_rate':'11241','currency':'USD'},每种货币每天输入一个条目?您可能还希望存储源货币。mongodb中的数据应始终存储为键值,因此使用find查询将非常简单,您将获得所有结果。此外,聚合是在单个查询中获得所有结果的最佳方法。