PyMongo Aggregation "AttributeError: 'dict' object has no attribute '_txn_read_preference'"
PyMongo Aggregation "AttributeError: 'dict' object has no attribute '_txn_read_preference'"
我确定我的代码中有错误,因为我是 pyMongo 的新手,但我会试一试。 MongoDB中的数据为167k+,如下:
{'overall': 5.0,
'reviewText': {'ago': 1,
'buy': 2,
'daughter': 1,
'holiday': 1,
'love': 2,
'niece': 1,
'one': 2,
'still': 1,
'today': 1,
'use': 1,
'year': 1},
'reviewerName': 'dcrm'}
我想统计所有 5.0 评分的 reviewText
字段中使用的术语。我有 运行 以下代码,但出现以下错误。有什么见解吗?
#1 Find the top 20 most common words found in 1-star reviews.
aggr = [{"$unwind": "$reviewText"},
{"$group": { "_id": "$reviewText", "word_freq": {"$sum":1}}},
{"$sort": {"word_freq": -1}},
{"$limit": 20},
{"$project": {"overall":"$overall", "word_freq":1}}]
disk_use = { 'allowDiskUse': True }
findings = list(collection.aggregate(aggr, disk_use))
for item in findings:
p(item)
如您所见,我遇到了 'allDiskUse' 组件,因为我似乎超过了 100MB 的阈值。但是我得到的错误是:
AttributeError: 'dict' object has no attribute '_txn_read_preference'
你很接近,allowDiskUse
命名参数不是字典所以语句应该是这样的
findings = list(collection.aggregate(aggr, allowDiskUse=True))
或
findings = list(collection.aggregate(aggr, **disk_use ))
我确定我的代码中有错误,因为我是 pyMongo 的新手,但我会试一试。 MongoDB中的数据为167k+,如下:
{'overall': 5.0,
'reviewText': {'ago': 1,
'buy': 2,
'daughter': 1,
'holiday': 1,
'love': 2,
'niece': 1,
'one': 2,
'still': 1,
'today': 1,
'use': 1,
'year': 1},
'reviewerName': 'dcrm'}
我想统计所有 5.0 评分的 reviewText
字段中使用的术语。我有 运行 以下代码,但出现以下错误。有什么见解吗?
#1 Find the top 20 most common words found in 1-star reviews.
aggr = [{"$unwind": "$reviewText"},
{"$group": { "_id": "$reviewText", "word_freq": {"$sum":1}}},
{"$sort": {"word_freq": -1}},
{"$limit": 20},
{"$project": {"overall":"$overall", "word_freq":1}}]
disk_use = { 'allowDiskUse': True }
findings = list(collection.aggregate(aggr, disk_use))
for item in findings:
p(item)
如您所见,我遇到了 'allDiskUse' 组件,因为我似乎超过了 100MB 的阈值。但是我得到的错误是:
AttributeError: 'dict' object has no attribute '_txn_read_preference'
你很接近,allowDiskUse
命名参数不是字典所以语句应该是这样的
findings = list(collection.aggregate(aggr, allowDiskUse=True))
或
findings = list(collection.aggregate(aggr, **disk_use ))