Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在嵌套文档mongodb中查找_Python_Mongodb_Aggregate - Fatal编程技术网

Python 在嵌套文档mongodb中查找

Python 在嵌套文档mongodb中查找,python,mongodb,aggregate,Python,Mongodb,Aggregate,我的数据如下所示: { "_id" : ObjectId("60772a343d0e1058a8255145"), "first" : ISODate("2010-01-01T18:00:00Z"), "last" : ISODate("2010-01-01T18:55:00Z"), "maxid13" : -9999,

我的数据如下所示:

{
    "_id" : ObjectId("60772a343d0e1058a8255145"),
    "first" : ISODate("2010-01-01T18:00:00Z"),
    "last" : ISODate("2010-01-01T18:55:00Z"),
    "maxid13" : -9999,
    "maxid9" : 7.9,
    "minid13" : -9999,
    "minid9" : 7.1,
    "nsamples" : 12,
    "samples" : [
        {
            "id1" : 3758,
            "id6" : 2,
            "id7" : -79.09,
            "id8" : 35.97,
            "id9" : 7.1,
            "id10" : 0,
            "id11" : -99999,
            "id12" : 0,
            "id13" : -9999,
            "c14" : "U",
            "id15" : 0,
            "id16" : 62,
            "id17" : 0,
            "id18" : -99,
            "id19" : -9999,
            "id20" : 1199,
            "id21" : 0,
            "id22" : -99,
            "id23" : 0,
            "timestamp1" : ISODate("2010-01-01T18:00:00Z"),
            "timestamp2" : ISODate("2010-01-01T13:00:00Z")
        },
        {
            "id1" : 3758,
            "id6" : 2,
            "id7" : -79.09,
            "id8" : 35.97,
            "id9" : 7.2,
            "id10" : 0,
            "id11" : -99999,
            "id12" : 0,
            "id13" : -9999,
            "c14" : "U",
            "id15" : 0,
            "id16" : 62,
            "id17" : 0,
            "id18" : -99,
            "id19" : -9999,
            "id20" : 1198,
            "id21" : 0,
            "id22" : -99,
            "id23" : 0,
            "timestamp1" : ISODate("2010-01-01T18:05:00Z"),
            "timestamp2" : ISODate("2010-01-01T13:05:00Z")
        }, 
       . 
       .
       .
mydb1.mongodbbucketright.aggregate([

    {
        "$match": {
            "first": {"$gte": datetime.strptime("2010-01-01 00:05:00", "%Y-%m-%d %H:%M:%S"),
                          "$lte" :datetime.strptime("2010-01-02 00:05:00", "%Y-%m-%d %H:%M:%S")},
            "samples.id13": {"$gt": 5}
        }
    },
    { "$unwind": "$samples" },
    {
        "$match": {
            "first": {"$gte": datetime.strptime("2010-01-01 00:05:00", "%Y-%m-%d %H:%M:%S"),
                      "$lte": datetime.strptime("2010-01-02 00:05:00", "%Y-%m-%d %H:%M:%S")},
            "samples.id13": {"$gt": 5}
        }
    },


])
我要执行此查询:

mydb1.mongodbbucketright.find(
    {"samples.timestamp1": {"$gte": datetime.strptime("2010-01-01 00:05:00", "%Y-%m-%d %H:%M:%S"),
                               "$lte": datetime.strptime("2010-01-02 00:05:00", "%Y-%m-%d %H:%M:%S")},
     "samples.id13":{"$gt":5}},

    {"samples.$": 1 })
这是在嵌套文档中查找的正确方法吗? 我想我得到的结果比平常少。 执行时间对我来说很关键,所以如果我能成功使用find,我不想使用aggregate

使用aggregate,我可以执行如下查询:

{
    "_id" : ObjectId("60772a343d0e1058a8255145"),
    "first" : ISODate("2010-01-01T18:00:00Z"),
    "last" : ISODate("2010-01-01T18:55:00Z"),
    "maxid13" : -9999,
    "maxid9" : 7.9,
    "minid13" : -9999,
    "minid9" : 7.1,
    "nsamples" : 12,
    "samples" : [
        {
            "id1" : 3758,
            "id6" : 2,
            "id7" : -79.09,
            "id8" : 35.97,
            "id9" : 7.1,
            "id10" : 0,
            "id11" : -99999,
            "id12" : 0,
            "id13" : -9999,
            "c14" : "U",
            "id15" : 0,
            "id16" : 62,
            "id17" : 0,
            "id18" : -99,
            "id19" : -9999,
            "id20" : 1199,
            "id21" : 0,
            "id22" : -99,
            "id23" : 0,
            "timestamp1" : ISODate("2010-01-01T18:00:00Z"),
            "timestamp2" : ISODate("2010-01-01T13:00:00Z")
        },
        {
            "id1" : 3758,
            "id6" : 2,
            "id7" : -79.09,
            "id8" : 35.97,
            "id9" : 7.2,
            "id10" : 0,
            "id11" : -99999,
            "id12" : 0,
            "id13" : -9999,
            "c14" : "U",
            "id15" : 0,
            "id16" : 62,
            "id17" : 0,
            "id18" : -99,
            "id19" : -9999,
            "id20" : 1198,
            "id21" : 0,
            "id22" : -99,
            "id23" : 0,
            "timestamp1" : ISODate("2010-01-01T18:05:00Z"),
            "timestamp2" : ISODate("2010-01-01T13:05:00Z")
        }, 
       . 
       .
       .
mydb1.mongodbbucketright.aggregate([

    {
        "$match": {
            "first": {"$gte": datetime.strptime("2010-01-01 00:05:00", "%Y-%m-%d %H:%M:%S"),
                          "$lte" :datetime.strptime("2010-01-02 00:05:00", "%Y-%m-%d %H:%M:%S")},
            "samples.id13": {"$gt": 5}
        }
    },
    { "$unwind": "$samples" },
    {
        "$match": {
            "first": {"$gte": datetime.strptime("2010-01-01 00:05:00", "%Y-%m-%d %H:%M:%S"),
                      "$lte": datetime.strptime("2010-01-02 00:05:00", "%Y-%m-%d %H:%M:%S")},
            "samples.id13": {"$gt": 5}
        }
    },


])
你认为哪条路正确? 提前谢谢