MongoDB
文章平均质量分 68
yx0628
这个作者很懒,什么都没留下…
展开
-
MongoDB游标
MongoDB数据库使用游标返回 find 的执行结果。客户端对游标的实现通常能够对最终结果进行有效的控制,可以限制结果的数量,略过部分结果,根据任意键按任意顺序的组合对结果进行各种排序,或者是执行其他一些强大的操作。> var cursor = db.mycollection.find();这查询的结果就放在 cursor 变量中了,可以一次查看一条结果。而如果没有放在变量中,she原创 2018-01-10 17:40:50 · 938 阅读 · 0 评论 -
MongoDB的查询命令
find查询> db.mycollection.find({"name":"foo"})多个条件时,逗号分割开查询条件即可:> db.mycollection.find({"name":"foo", "age":20})指定需要返回的键可以通过第二个参数来获取指定的键,这样节省传输的数据量,同时也节省客户端解码文档的时间和内存消耗。> db.mycollection.find({},{"name":原创 2018-01-10 15:45:24 · 1332 阅读 · 0 评论 -
MongoDB基础
文档是MongoDB中数据的基本单元。 集合可以看作是一个拥有动态模式的表。 每一个文档都有一个特殊的键 _id ,这个键在所属集合中是唯一的。文档文档是MongoDB的核心概念,文档就是键值对的一个有序集合原创 2018-01-02 15:56:04 · 229 阅读 · 0 评论 -
MongoDB聚合
使用聚合框架可以对集合中的文档进行变换和组合。管道操作符每个操作符都会接受一连串的文档,对这些文档做一些类型转换,最后将转换后的文档作为结果传递给下一个操作符。最后一个管道操作符,将结果返回给客户端。$matchmatch用于对文档集合进行筛选,之后可以在筛选得到的文档子集上做聚合。例如想对年龄 age 为 21 的用户做统计,可以使用{$match : {"age原创 2018-01-12 14:14:57 · 306 阅读 · 0 评论 -
MongoDB内嵌与引用
MongoDB的范式化,是将数据分散到不同的集合中,不同的集合之间可以相互引用数据。如果需要修改某一块数据,只需要修改保存这块数据的文档即可,但查询时,需要在不同集合之间执行连接查询,需多次查询实现。 反范式化,将每个文档所需的数据都嵌入在文档内部,每个文档都拥有自己的数据副本,而不是所有文档共同引用同一个数据副本。如果信息发生了变化,所有相关的文档都要进行更新。但是执行查询时,只需要一次查询。原创 2018-01-12 17:17:55 · 7729 阅读 · 0 评论 -
MongoDB导出工具mongoexport的使用
mongoexport 工具的基本用法: -u 数据库用户名 -p 数据库密码 -d 数据库名 -c 集合名 -q 查询条件 -o 输出文件路径 示例:mongoexport -u username -p password -d database -c collection -q '{"status":{$exists: true}}' -o /home/result.json原创 2018-01-25 10:24:54 · 652 阅读 · 0 评论 -
MongoDB创建、更新和删除等指令
首先推荐一个很好用的MongoDB客户端:RoboMongo 可以去官网上下载:https://robomongo.org/downloadMongoDB的一些基础语法:创建库和集合创建数据库testdb,直接使用选库命令,不存在则会新建:> use testdbswitched to db newdb创建collection集合,如创建 mycollection> db.createColle原创 2018-01-08 15:56:46 · 1854 阅读 · 0 评论 -
MongoDB的自增主键 _id 的生成机制
如果插入文档时没有 _id 键,系统会自动创建。MongoDB中存储的文档必须有这个“_id”键。这个键的值可以是任意类型,默认是个ObjectId对象,每个文档有唯一的 _id ,确保集合中的每个文档都会被唯一标示。 ObjectId是 _id 的默认类型,不同的机器都能用全局唯一的同种方法方便的生成。因为MongoDB初衷是用作分布式数据库,在多个服务器的分片环境中生成唯一标识符非常重要。原创 2018-01-07 21:25:52 · 13026 阅读 · 1 评论 -
MongoDB的安装与配置
首先下载对应机器的安装版本,可以去官网选择版本获得其对应的下载链接,官网地址:https://www.mongodb.com/download-center#production 以centOS7.0版本的3.6.1版本mongoDB为例:# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.1.tgz原创 2018-01-07 20:00:03 · 218 阅读 · 0 评论 -
MongoDB填充因子和更新优化
MongoDB填充因子(padding factor)是MongoDB为文档的扩展而预留的增长空间,因为MongoDB的文档是以顺序表的方式存储的,每个文档之间会非常紧凑。 如图,元素之间没有多余的可增长空间,当我们对顺序表中某个元素的大小进行增长的时候,就会导致原来分配的空间不足,放不回去原位了,只能要求其放于最后的位置。然后,后续插入的文档都会提供一定的填充因子,以便于文档频繁的修改,如原创 2018-01-13 17:40:23 · 1939 阅读 · 0 评论 -
MongoDB索引
首先,创建测试样例数据,创建一百万个用户名和年龄的文档:> for(i=0; i<1000000; i++){ db.testuser.insert( { "i":i, "username":"user"+i, "age":Math.floor(Math.random()*120),原创 2018-01-11 17:19:35 · 379 阅读 · 0 评论 -
Mongo集群Java连接时MongoException$Network、UnknownHostException错误
今天在 Java 连接 Mongo 集群时报了一个超时的错误,但是在本地客户端连接单节点的时候却能连上,具体报的错误如下:Caused by: com.mongodb.MongoTimeoutException: Timed out after 60000 ms while waiting for a server that matches {serverSelectors=[ReadP...原创 2018-03-29 22:59:05 · 1803 阅读 · 0 评论