使用PyMongo访问MongoDB Atlas触发OperationFailure错误求助
问题原因
MongoDB的查询投影规则不允许同时混合使用包含型投影(字段值设为1,表示保留该字段)和排除型投影(字段值设为0,表示排除该字段),唯一的例外是_id字段——它可以在使用包含型投影时单独设为0,或者在排除型投影中单独处理。
你代码里的投影参数{'_id': 0, 'name': 1, 'email': 0, 'phone': 0}同时包含了包含型(name:1)和排除型(email:0、phone:0)规则,这直接违反了MongoDB的投影约束,因此触发了OperationFailure错误。
解决方法
根据你的需求选择以下任意一种修改方式:
方式1:仅保留name字段
如果你的目标是只获取name字段,直接指定要保留的字段即可,其他字段会自动被排除:
x = i.find({}, {'_id': 0, 'name': 1})
方式2:排除email和phone字段,保留其他所有字段
如果需要保留除_id、email、phone之外的所有字段,只指定要排除的字段:
x = i.find({}, {'_id': 0, 'email': 0, 'phone': 0})
内容的提问来源于stack exchange,提问作者Garlic Bread Express
相关产品推荐
相关产品推荐

