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)