1.使用mongodb时,如果存入键值对数据的键名中含有英文句号,在插入的时候会保存,导致无法插入数据
mongo_client = MongoClient('127.0.0.1', 27017) db_auth = mongo_client['admin'] db_auth.authenticate('username','password') collection = mongo_client['qweasd']['qwe'] data = {'_id':'aaa','.bbb':'ccc'} collection.insert_one(data) #报错 bson.errors.InvalidDocument: key '.bbb' must not contain '.'
遇到这种情况下,在插入数据的时候加上check_keys即可
collection.insert(data,check_keys=False)
当然,mongodb中.有特殊的用途,除了万不得已的情况下使用check_keys参数之外,最好的情况是当你的数据中含有.时,你可以使用Unicode码来替换
除了.之外,mongodb键名中同时还不能出现
/ " $ * < > : | ?
等数据,如果你的数据中含有这些的话,规避吧,或者设置不检查键名
2.使用wget来下载文件时,需要下载到指定的目录下,在网上找了一圈,说给定一个-P参数即可
wget -P path 'www.baidu.com' -O baidu.txt
但是很奇怪,我的执行之后path下并没有baidu.txt,反而在执行该命令的路径下出现了,奇哉怪哉,于是索性在-O上下功夫
wget 'www.baidu.com' -O /home/.../baidu.txt
很显然,这必须可以呀
3.redis集群情况下,如何遍历集群下所有的数据库?
scan_iter()可以轻松实现