如何使用PyMongo投影排除所有字段,仅获取指定字段?
MongoDB投影:仅保留指定字段的简便方法
MongoDB的投影规则很明确:除非显式指定包含(设为1),否则默认会返回所有字段;但如果你明确指定了要保留的字段,其他未指定的字段会自动被排除(唯一例外是_id字段,它默认会返回,需要显式设为0来排除)。
针对你需要仅保留email和phone字段的需求,直接在投影参数里把这两个字段设为1,再把_id设为0即可,不用逐个列出要排除的字段:
data = db.Users.find_one({'username': user}, {"_id": 0, "email": 1, "phone": 1})
这样不管你的文档有多少其他字段,查询结果里只会包含email和phone,其余字段都会被自动过滤掉,完全不用操心大文档里的冗余字段。
另外要注意:MongoDB不允许在同一投影中同时混合使用包含(设1)和排除(设0)的字段(除了_id),所以只要你明确指定了要保留的字段为1,就不用再去设置其他字段为0,系统会自动处理排除逻辑。
内容的提问来源于stack exchange,提问作者M_Arad
相关产品推荐
相关产品推荐

