MongoDB 非常杂碎的笔记

1: key 里面不能有 . , 然后我比较推荐将它处理为_dot_这样子的自定义符号

2:多用bulk操作,语法忘了就查吧,在我的需求当中我需要遍历的一个collection的时候发现某个变量没有为true的时候就处理下那个document里面的link的这个value,在处理完之后把那个变量标示为true,那么这个时候就需要把储够一定数量的更新操作后 ,用bulk操作来批量地更新,大概是这个样子的,如下代码,还有一个需要注意的是,拿出某一个doc的时候,要它的内置 _id的话,先以字符串形式拿出那个id的串,然后new 一个ObejectID, 就可以了,不能直接用string进去的:

        BulkWriteOperation bulkWriteOperation = myCollection.initializeUnorderedBulkOperation();
        while(myCursor.hasNext()) {
            
            DBObject tempObject = myCursor.next();
            String tempString = tempObject.get("_id").toString();
            System.out.println(tempString);
            bulkWriteOperation.find(new BasicDBObject("_id", new ObjectId(tempString))).updateOne(new BasicDBObject("$set", new BasicDBObject("vendor", "sigma_corporation")));            
        }
        bulkWriteOperation.execute();

3:处理网页中的   用unicode形式的方法来: 

        String clean_string = "";
        clean_string = dirty_string.replace("\u00a0", "");

4:cursor可以设置每次fetch的大小,它默认的情况下是会读取101个doc进内存的,方法是batchsize

5: bulk writer 在没有东西可以执行的情况下执行execute是会报错的。。。所以要先判断。。。真傻逼。。。不可以在execute里面帮用户处理这个事情么。。。。。

6: 在mongodb里查询包含某个字符串的对象:"link" : /gw222/  就可以了,斜杠中间的东西不用加双引号了,这个好像还不错

7:在java里面,要判断一个嵌套的字段里面是否还有些什么,以dbobject的身份来查询的话,get一个key,这时候这个key是不能接受用.来表示的嵌套的,要直接用最上层的key来get,然后接下去的事情就自己搞定吧!

8: 原来jsoup里面的getelementsbyclass这种东西。。。是用contatins来实现的。。。。坑爹啊,就算是class的名字是”a b c", 那么那个参数是b的话,也是可以找到的!!!!

9: 在rockmongo里面,查找那些不包含某个字段的document,语法是:"alternative_names" : { "$exists" : false }  , 要多多学习下mongodb的语句啊。。。。http://docs.mongodb.org/manual/reference/operator/#AdvancedQueries-%24exists

10:put的时候,如果一个字段如果以前已经存在了,那么会用新的值覆盖掉旧的值,记得是先put,然后要用collection来save

11: 关于各种max size,我目前遇到了两个,第一个是在用rockmongo导出一个js文件的时候,根据原始的设置是只有128M的,然后在php ini 文件里面,把memory limit 改掉,我反正就改成了1024M,我是把外面的php和rockmongo里面的php都改了,管他。。。第二个:在导入一个js文件的时候,根据默认的设置,反正太小了…会出现nginx 413错误,说client entity太大了,这个时候,改以下地方,第一个,rockmongo里面的ngnix conf文件,在http段里面,按照人家的格式,加上:client_max_body_size 32M; 当然可以改成1024…只要够狠…  然后在php ini里面,当然也是两个一起改:把post_max_size,upload_max_filesize,这两个,都改大,网上查到的建议说是把这些都改成同样的数值,那就那样吧,改完后,最重要的一点:是要重启!电脑!!!单单重启服务是不行的!!!本人亲测!!!!反正就是:ngnix那里加一句 & php ini 改三个 -》重启电脑,ok。。。。

 12: jsoup里面的getelementsby,,, ,都是不分大小写的!!!!

13:直接用mongodb 自带的 bin 里面的 mongoimport 和 mongoexport是最爽最快的… 格式的话大致上就是 mongodbexport -d data_name -c collection_name -o path_and_file_name ,  mongodbimport -d database_name -c collection_name file_name。然后默认情况下,直接导出json文件,非常块。值得注意的是,在import的过程中, 如果目标collection里面存在与被导入文件相同的document,那么它会报错,但是不会中断,然后不会覆盖得掉原本的documents,其实这个还是蛮好的,相当于帮我初步去重了。

14:mongodb java 查询,查询的结果,tostring是不对的…应该要toarray,意思就是用一个数组来给我装着查询的结果,然后输出在console,collection.find(new basicdbobejct("name", "allen")).toarray(),如果没有结果就会输出【】;

15:对于网页中的&nbsp,用length来测试,长度是1的,而trim对这个东西是不能去掉的,trim去掉的是显示的空格,这个整个长度就为1

posted @ 2014-08-15 11:58  Allen_Tung  阅读(549)  评论(0编辑  收藏  举报