【发布时间】:2018-06-10 09:24:00
【问题描述】:
我正在清理一个数据集,并且有一个字段性别。在该字段中,有男性、男性和男性等条目。为了解决这个问题,我正在尝试使用 pymongo 更新我的 MongoDB 数据库。
在数据库中,Gender属性为Gender(前面是大写的G)
我的代码目前如下所示:
import pymongo
from pymongo import MongoClient
db_info = {
'db_name': 'MentalHealth',
'collection_name': 'MentalHealth',
}
if __name__ == "__main__":
mongo_client = MongoClient()
mongo_db = mongo_client[db_info['db_name']]
mongo_collection = mongo_db[db_info['collection_name']]
#normalize to lowercase
mongo_collection.aggregate([{ '$project': { 'Gender':{ '$toLower':"$Gender"}}}])
代码运行没有问题,但数据库没有更新,我不确定代码有什么错误。任何帮助将不胜感激。谢谢!!!
【问题讨论】:
-
您正在执行
aggregate,它将返回所有Gender字段转换为小写。更新记录使用update -
你快到了。你有很多选择。查看我对可能重复的回答
-
@sstyvane 这是错误的重复。 OP 没有使用另一个字段的值更新
Gender字段,而是使用相同的字段。 -
另一个字段或相同字段,过程仍然相同,这就是为什么我们说“可能重复”如果不是这种情况我会回答,因为除了这个@,这里的答案都没有用987654322@ 提到了
$out管道阶段运算符。 @GarbageCollector -
你错过了这里的重点。答案不仅适用于 OP。我提出了issue once on meta 并给出了教坏习惯的答案,请参阅comment,但我想您不想看到我指出的内容,那是您的选择@GarbageCollector