mongodb的常用操作(入门必备)

来源:互联网 发布:mac gradle 安装路径 编辑:程序博客网 时间:2024/06/16 11:32

一、简介

1、mongodb是由c++编写的,是一个基于分布式文件存储的开源数据库系统

2、数据结构由键值对组成,类似于json对象

3、常用的概念解析

SQL术语

MongoDB术语

说明

database

database

数据库

table

collection

数据库表/集合

row

document

/队列

column

field

字段/

index

index

索引

primary key

primary key

主键

 


二、常用的数据类型

String : 这是最常用的数据类型来存储数据。在MongoDB中的字符串必须是有效的UTF-8

 

Integer : 这种类型是用来存储一个数值。整数可以是32位或64位,这取决于您的服务器。

 

Boolean : 此类型用于存储一个布尔值 (true/ false) 

 

Double : 这种类型是用来存储浮点值。

 

Min/ Max keys : 这种类型被用来对BSON元素的最低和最高值比较。

 

Arrays : 使用此类型的数组或列表或多个值存储到一个键。

 

Timestamp : 时间戳。这可以方便记录时的文件已被修改或添加。

 

Object : 此数据类型用于嵌入式的文件。

 

Null : 这种类型是用来存储一个Null值。

 

Symbol : 此数据类型用于字符串相同,但它通常是保留给特定符号类型的语言使用。

 

Date : 此数据类型用于存储当前日期或时间的UNIX时间格式。可以指定自己的日期和时间,日期和年,月,日到创建对象。

 

Object ID : 此数据类型用于存储文档的ID

 

Binary data : 此数据类型用于存储二进制数据。

 

Code : 此数据类型用于存储到文档中的JavaScript代码。

 

Regular expression : 此数据类型用于存储正则表达式

 

 

三、常用的操作

  1、常用的帮助提示

db.help()         //帮助

 

         2、操作数据库

          use  db_name   //创建或指定数据库,db_name为数据库 名称,如果不存在则进行创建,如果存在则切换到该数据库

          db               //显示当前数据库

          db.getName()           //显示当前数据库的名称

          show dbs        //显示所有数据库

          db.dropDatabase()      //删除当前指定的数据库

          db.cloneDatabase(host) //从指定主机上克隆数据库

          db.stats()               //显示当前数据库状态

          db.version()             //显示数据库版本号

          db.getMongo()          //查看当前数据的连接信息

 

         3、操作Collection(集合)

           db.createCollection(collection_name,options)   //创建一个集合,collection_name为集合名称,options为配置的一些选项

字段

类型

描述

capped

Boolean

(可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定true,则需要也指定尺寸参数。

autoIndexID

Boolean

(可选)如果为true,自动创建索引_id字段的默认值是false。

size

number

(可选)指定最大大小字节封顶集合。如果封顶如果是 true,那么你还需要指定这个字段。

max

number

(可选)指定封顶集合允许在文件的最大数量。

 

 

    db.collection_name.drop()          //删除指定的集合

db.col_name.update(selection_criteria,update_data) //更新文档

例:db.mycol.update({'title':'MongoDB'},{$set:{'title':'New MongoDB'}})

 

         db.getCollection(collection_name)  //得到指定名称的集合

         db.getCollectionNames()           //获取当前数据库的所有集合

         db.collection_name.find()          //显示该集合的所有文档数据

        db.collection_name.find(select_criteria)   //条件查询


例:db.mycol.find({"age": 20});         //查询age=20的记录

        db.mycol.find({“age”:{$lt:20}})    //查询age<20的记录

        db.mycol.find({“age”:{$lte:20}})  //查询age<=20的记录

        db.mycol.find({“age”:{$gt:20}})    //查询age>20的记录

        db.mycol.find({“age”:{$gte:20}}) //查询age>=20的记录

        db.mycol.find({“age”:{$ne:20}})   //查询age!=20的记录

        db.mycol.find({“age”:{$gte:20,$lte:25}}) //查询20~25之间


           db.collection_name.find({key1:value1,key2:value2}) //and

            db.collection_name.find({$or: [ {key1: value1}, {key2:value2} ]})                       //or

           db.collection_name.find().limit(number)    //限定查询的记录数

         db.col_name.find(limit(number).skip(n)  //跳过n条记录

         db.col_name.find().sort({key:1})    //按该字段key的升序排列

         db.col_name.find().sort({key:-1})   //按该字段key降序排列

      ensureIndex() 方法也可以接受的选项列表(可选),其下面给出的列表:

参数

类型

描述

background

Boolean

在后台建立索引,以便建立索引并不能阻止其他数据库活动。指定true建立在后台。默认值是 false.

unique

Boolean

创建唯一索引,以便收集不会接受插入索引键或键匹配现有的值存储在索引文档。指定创建唯一索引。默认值是 false.

name

string

索引的名称。如果未指定,MongoDB中都生成一个索引名索引字段的名称和排序顺序串联.

dropDups

Boolean

创建一个唯一索引的字段,可能有重复。 MongoDB的索引只有第一次出现的一个键,从集合中删除的所有文件包含该键的后续出现的。指定创建唯一索引。默认值是 false.

sparse

Boolean

如果为true,指数只引用文档指定的字段。这些索引使用更少的空间,但在某些情况下,特别是各种不同的表现。默认值是 false.

expireAfterSeconds

integer

指定一个值,以秒为TTL控制多久MongoDB的文档保留在此集合.

v

index version

索引版本号。默认的索引版本取决于mongodb 运行的版本在创建索引时.

weights

document

权重是从1到99999范围内的数,表示该字段的意义,相对于其他的索引字段分数.

default_language

string

对于文本索引时,决定停止词和词干分析器和标记生成规则列表的语言。默认值是 english.

language_override

string

对于文本索引时,指定的名称在文档中包含覆盖默认的语言,语言字段中。默认值是语言。

 

 

 

4、操作用户

         db.addUser(user_name)               //添加用户

         db.addUser(user_name,password,true) //添加用户密码,是否只读

         db.auth(user_name,password)    //数据库认证、安全模式

         show users    //显示当前所有用户

         db.removeUser(user_name)            //删除用户

  

 

0 0