mongoDB学习干货

本文主要分三个部分介绍mongDB:mongoDB基础语法、windows下用js操作mongoDB、常用操作总结。(默认已经下载安装好mongodb)

一、mongoDB基础语法

1、连接数据库

win+R,cmd到控制台,复制mongo的安装目录,cd到其bin目录下,以便执行后续操作。

mongo url:port/db_name

url可以是本地的localhost(127.0.0.1)也可以是远程的数据库;port默认为27017;db_name是你要连接的数据库名

2、创建数据库

use db_name      //db_name是你要创建的数据库名字,一开始创建的数据库不显示,只有插入数据以后才显示。

3、创建表(集合)

语法格式:

db.createCollection(name, options)

参数说明:

  • name: 要创建的集合名称
  • options: 可选参数, 指定有关内存大小及索引的选项

options 可以是如下参数:

字段 类型 描述
capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。
autoIndexId 布尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数值 (可选)为固定集合指定一个最大值(以字节计)。
如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量。

在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。

db.createCollection("mycol", { capped : true, autoIndexId : true, size : 
   6142800, max : 10000 } )

4、插入数据

db.collection_name.insert({"name":"张三","sex":"女","age":"20"});

5、查询数据

db.collection_name.find(<query>,<projection>);

第一个是查询条件,第二个是返回结果的字段约束。

6、删除数据

*:特别注意,在Windows 的控制台下写删除数据的js的时候,可能删除数据非常有限,我也不知道问题出在哪里,当我把js放在一个文件里面的时候,再运行 mongo url:port/db_name remove.js的时候,才能完整删除符合条件的语句。

我的业务需求是这样的:统计相同字段下重复的数据条数,删选出大于1的数据,(也即为重复的数据),如何删除其中一条。

有三个地方需要注意:如何判断重不重复,如何筛选大于1的数据,如何删除一条,这三个问题分别对应:聚合统计、条件操作符、删除语句。

var c=db.collection_name.aggregate(

    [    
       {
         $group: {
                _id: {
                       book: "$book",          
	                   version:"$version",
	                   code:"$code",		
                          name:"$name",   
	                   pages:"$pages"
                },
               total: { $sum :1 }//计算同一个book、version、code、name、pages下的数据条数
         }//按照book、version、code、name聚合
      },
      { $sort : { pages: -1} },//按照pages降序排序,如果是1表示升序
      { $match: { total: { $gt: 1 } } }//筛选total数据条数大于等于2的数据

    ]

)

 

之后再对c中的数据进行操作。注意如果将rs 的结果返回为“_id”中的数据时:在其后加上.map(function(el){return el._id})即可。

for (var i = 0;i <c.length ; i++) {
    var q="";
    var book="'book':'"+c[i]["book"]+"',";
    var version="'version':'"+c[i]["version"]+"',";
    var code="'code':'"+c[i]["code"]+"',";
    var name="'name':'"+c[i]["name"]+"',";
    var pages="'pages':"+c[i]["pages"][0];
    q="{"+book+version+code+name+"}";
    db.units.remove(q,1);//q相当于条件查询,1表示只删除第一条。
}//将得到的数据做查询后删除一条。

二、windows下用js操作mongoDB

进入mongo 的bin目录下,运行mongo url:port/db_name  回车,如何键入js代码;

或者运行mongo url:port/db_name search.js  回车,即可执行你自己的js。

三、常用操作总结

猜你喜欢

转载自blog.csdn.net/qq_32662795/article/details/82967335
今日推荐