python - 如果几列是空白或空的,如何获取提取的行
问题描述
我是新手,只有在几列空白时才需要一些帮助来提取记录/行。下面的代码忽略了空白记录并让我得到有价值的记录。有人可以在这里建议吗?
mongo_docs = mongo.db.user.find({"$and":[{"Param1": {"$ne":None}}, {"Param1": {"$ne": ""}}]})
解决方案
您正在使用的查询包含ne
代表不相等的内容。您可以将其更改为eq
(equals) 并检查是否获得了所需的结果。
mongo_docs = mongo.db.user.find({"$or":[{"Param1": {"$eq":None}}, {"Param1": {"$eq": ""}}]})
上述代码的简化也将是:
mongo_docs = mongo.db.user.find({"$or":[{"Param1": {"$eq":None, "$eq": ""}}]})
如果更好地满足您的要求,您也可以使用存在查询。
来自评论:您是绝对正确的,该命令将使用多个参数。
mongo_docs = mongo.db.user.find({"$or":[{"Param1": {"$eq":None, "$eq": ""}}, {"Param2": {"$eq":None, "$eq": ""}},{"Param3": {"$eq":None, "$eq": ""}}]})
此外,如果您想在更大的范围内进行操作,您可以考虑使用文本索引。这些将允许您一次搜索所有测试字段,并且相同的代码应如下所示:
mongo.db.user.createIndex({Param1: "text", Param2: "text", Param3: "text"})
mongo.db.user.find({$text: {$search: ""}})
以上仅适用于文本内容,我还没有遇到任何整数值的实现,但不明白为什么使用其他通配符进行一些小的更改时同样不适用。
参考:
推荐阅读
- r - r 拆分应用组合问题
- javascript - Google Apps 脚本 - 将数据列转换为数组
- jsp - 是否可以使用来自 jsp 的不同链接仅通过 1 个 servlet 管理列表数据?
- json - Ansible 保存来自多个主机的输出
- javascript - 未捕获的 SyntaxError:JSON 输入意外结束——NodeJS
- python - Keras:再处理如何缩放图像?
- python - 在没有 AWS 密钥管理器的情况下在本地使用密钥测试 Lambda 函数
- python - Django 按主页中最高点赞数排序
- javascript - 反应联系表格问题电子邮件js
- reactjs - 无法在 React 状态中重置值