亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法運行 MongoDB 聚合命令(OperationFailure)

無法運行 MongoDB 聚合命令(OperationFailure)

一只萌萌小番薯 2023-10-26 16:00:29
我正在嘗試在 python 中使用 MongoDB 聚合管道命令(使用 PyMongo),但遇到此錯誤:pymongo.errors.OperationFailure: {aggregate: 1} is not valid for '$match'; a collection is required., full error: {'ok': 0.0, 'errmsg': "{aggregate: 1} is not valid for '$match'; a collection is required.", 'code': 73, 'codeName': 'InvalidNamespace'}我嘗試刪除第一個匹配項,但它只會將“$match”更改為“$project”。這是我正在使用的管道:    [        {            "$match": {"$text": {"$search": "{self.keyword}"}}        },        {            "$project":            {                "wholeDate": {"$dateFromString": {"dateString": "$date"}},                "year": {"$year": {"$dateFromString": {"dateString": "$date"}}},            }        },        {            "$match": {"wholeDate": {"$gte": "{self.date_from_}", "$lte": "{self.date_until_}"}}        },        {            "$group":            {                "_id": {"year": "$year"},                "count": {"$sum": 1}            }        }    ]當我直接在 MongoDB 上運行相同的管道時,它工作得很好。工作時應該給出以下輸出:{ "_id" : { "year" : 2018 }, "count" : 34 }
查看完整描述

1 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

我認為在指定數據庫上運行聚合函數時不需要通過給出參數來再次指定集合。我在這里(https://docs.mongodb.com/manual/reference/command/aggregate/#command-fields)發現有一個集合參數,所以我將函數調用更改為:

mongo.test.aggregate(aggregate="test", pipeline=self.pipeline)

現在效果很好。有些文檔從未提到集合參數。



查看完整回答
反對 回復 2023-10-26
  • 1 回答
  • 0 關注
  • 302 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號