Mongo Cursor不返回游标而是返回一个对象

时间:2016-08-10 14:00:40

标签: python mongodb pymongo aggregation-framework mongodb-aggregation

test_cursor = db.command({
    "aggregate": "New_layout",
    "pipeline": [
        { "$match": { "$and": [
            { "FIRST_DATE": { "$gte": new_date } },
            { "CHAIN_ID": { "$ne": "" } }
        ] } },
        { "$unwind": { "path": "$ENTERS", "includeArrayIndex": "Date" } },
        { "$project": {
            "_id": 0,
            "SITE_ID": "$SITE_ID",
            "CHAIN_ID": "$CHAIN_ID",
            "SEGMENT_ID": "$SEGMENT_ID",
            "ZIP": "$ZIP",
            "ZIP3": "$ZIP3",
            "MARKET_ID": "$MARKET_ID",
            "REGION": "$REGION",
            "MALL_CODE": "$MALL_CODE",
            "MALL_AREA": "$MALL_AREA",
            "MALL_NAME": "$MALL_NAME",
            "FIRST_DATE": "$FIRST_DATE",
            "MARKET_AREA": "$MARKET_AREA",
            "REGION_AREA": "$REGION_AREA",
            "ZIP_AREA": "$ZIP_AREA",
            "ZIP3_AREA": "$ZIP3_AREA",
            "DATE": "$Date",
            "ENTERS": "$ENTERS"
        } }
    ],
    "allowDiskUse": bool(1),
    "cursor": {} 
})

asd=list(test_cursor)

光标的内容如下: -

 [u'cursor', u'ok', u'waitedMS'] .

但是使用$out语句,输出集合具有预期的内容。 我正在运行pymongo v3.2.2和mongo 3.2。有人告诉我v3.0或更小的问题,但这是我无法弄清楚的事情

1 个答案:

答案 0 :(得分:0)

您应该使用aggregate()代替command()

test_cursor = db.New_layout.aggregate([
    { "$match": { "$and": [
        { "FIRST_DATE": { "$gte": new_date } },
        { "CHAIN_ID": { "$ne": "" } }
    ] } },
    { "$unwind": { "path": "$ENTERS", "includeArrayIndex": "Date" } },
    { "$project": {
        "_id": 0,
        "SITE_ID": "$SITE_ID",
        "CHAIN_ID": "$CHAIN_ID",
        "SEGMENT_ID": "$SEGMENT_ID",
        "ZIP": "$ZIP",
        "ZIP3": "$ZIP3",
        "MARKET_ID": "$MARKET_ID",
        "REGION": "$REGION",
        "MALL_CODE": "$MALL_CODE",
        "MALL_AREA": "$MALL_AREA",
        "MALL_NAME": "$MALL_NAME",
        "FIRST_DATE": "$FIRST_DATE",
        "MARKET_AREA": "$MARKET_AREA",
        "REGION_AREA": "$REGION_AREA",
        "ZIP_AREA": "$ZIP_AREA",
        "ZIP3_AREA": "$ZIP3_AREA",
        "DATE": "$Date",
        "ENTERS": "$ENTERS"
    } }
],
allowDiskUse=True)