0
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) 

光标的内容如下: -蒙戈光标不returnning光标,但对象

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

但是与$out声明,输出集合有预期的内容。 我正在运行pymongo v3.2.2和mongo 3.2。我被告知这个问题与v3.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)