创建、删除数据库

格式

use DATABASE_NAME

如果不存在,则创建,否则直接切换到该数据库

显示当前所在的数据库

db

显示所有数据库

show dbs

删除数据库

db.dropDatabase()

例子

> show dbs
admin .078GB
db_log .953GB
local .078GB
test .078GB
> use del_db
switched to db del_db
> db.col.insert({x:})
WriteResult({ "nInserted" : })
> show dbs
admin .078GB
db_log .953GB
del_db .078GB
local .078GB
test .078GB
> db
del_db
> db.dropDatabase()
{ "dropped" : "del_db", "ok" : }

插入文档

文档的数据结构和json基本一致

所有存储在集合中都是BSON格式

BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON

>db.col.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes:
})

删除文档

语法

db.collection.remove(
<query>,
<justOne>
)
  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档。

对比

  • 删除集合中的所有文档(保留集合):db.col.remove({})
  • 删除集合:db.col.drop()

案例

> db.col.find()
{ "_id" : ObjectId("56c55cf5ca446fab71e4c382"), "x" : }
{ "_id" : ObjectId("56c55cf6ca446fab71e4c383"), "x" : }
{ "_id" : ObjectId("56c55cffca446fab71e4c384"), "x" : } > db.col.remove({x:}, )
WriteResult({ "nRemoved" : })
> db.col.find()
{ "_id" : ObjectId("56c55cf6ca446fab71e4c383"), "x" : }
{ "_id" : ObjectId("56c55cffca446fab71e4c384"), "x" : } > db.col.remove({x:})
WriteResult({ "nRemoved" : })
> db.col.find()

查询文档

读取格式:db.COL_NAME.find()

以易读的方式读取:db.COL_NAME.find().pretty()

只读一个文档:db.COL_NAME.findOne()

AND条件

db.col.find({key1:value1, key2:value2})

OR条件

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

条件查询

案例:

x>1 & (y=3 or y = 4)

db.col.find(
{
x:{$gt:},
$or:[
{y:},{y:}
]
}
)

$type操作符

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果

示例

> db.col.find()
{ "_id" : ObjectId("56c562c1ca446fab71e4c387"), "x" : , "y" : }
{ "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : , "y" : }
{ "_id" : ObjectId("56c568a8b708aa3d13c61cc6"), "x" : "aaa" }
> db.col.find({x:{$type:}})
{ "_id" : ObjectId("56c568a8b708aa3d13c61cc6"), "x" : "aaa" }
> db.col.find({x:{$type:}})
{ "_id" : ObjectId("56c562c1ca446fab71e4c387"), "x" : , "y" : }
{ "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : , "y" : }

limit(n)与skip(n)方法

limit显示前n条文档

skip调到第n条文档开始显示

示例

> db.col.find()
{ "_id" : ObjectId("56c562c1ca446fab71e4c387"), "x" : , "y" : }
{ "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : , "y" : }
{ "_id" : ObjectId("56c568a8b708aa3d13c61cc6"), "x" : "aaa" } > db.col.find().limit()
{ "_id" : ObjectId("56c562c1ca446fab71e4c387"), "x" : , "y" : }
{ "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : , "y" : } > db.col.find().skip()
{ "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : , "y" : }
{ "_id" : ObjectId("56c568a8b708aa3d13c61cc6"), "x" : "aaa" } > db.col.find().skip().limit()
{ "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : , "y" : }

排序

格式:

db.COL_NAME.find().sort({KEY:})

KEY对应的值:1(升序),-1(降序)

示例:

> db.col.find()
{ "_id" : ObjectId("56c56dd4ca446fab71e4c38a"), "x" : , "y" : }
{ "_id" : ObjectId("56c572c2ca446fab71e4c38b"), "x" : , "y" : }
{ "_id" : ObjectId("56c572c8ca446fab71e4c38c"), "x" : , "y" : } > db.col.find().sort({x:})
{ "_id" : ObjectId("56c56dd4ca446fab71e4c38a"), "x" : , "y" : }
{ "_id" : ObjectId("56c572c2ca446fab71e4c38b"), "x" : , "y" : }
{ "_id" : ObjectId("56c572c8ca446fab71e4c38c"), "x" : , "y" : } > db.col.find().sort({x:-})
{ "_id" : ObjectId("56c572c8ca446fab71e4c38c"), "x" : , "y" : }
{ "_id" : ObjectId("56c572c2ca446fab71e4c38b"), "x" : , "y" : }
{ "_id" : ObjectId("56c56dd4ca446fab71e4c38a"), "x" : , "y" : }

索引

如果没有索引,MongoDB读取文件时,首先扫描整个文件从中找到符合条件的记录。查询效率巨低!

索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构

语法格式

db.COLLECTION_NAME.ensureIndex({KEY:})

KEY值是要创建的索引字段,1为指定按升序建索引,-1是指定按降序建索引。

> db.col.ensureIndex({y:})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : ,
"numIndexesAfter" : ,
"ok" :
}

聚合

聚合主要用来处理数据(如平均值、求和等),并返回计算后的数据结果

语法格式

db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

复制

mongodb各个节点常见的搭配方式为:一主一从、一主多从。

主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。

原理

副本集特征

  • N 个节点的集群
  • 任何节点可作为主节点
  • 所有写入操作都在主节点上
  • 自动故障转移
  • 自动恢复

MongoDB操作的更多相关文章

  1. 基础拾遗-----mongoDB操作

    基础拾遗 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗----- ...

  2. mongodb操作文件

    mongodb操作文件,主要是通过GridFS类.存储文件主要存放在fs中,其中的fs是数据库默认的.并且GridFS是直接与数据库打交道,与collection集合无关. ============= ...

  3. PHP mongoDB 操作

    <?php /** * PHP操作MongoDB学习笔记 */ //************************* //** 连接MongoDB数据库 **// //************ ...

  4. mongodb操作之使用javaScript实现多表关联查询

    一.数据控制 mongodb操作数据量控制,千万控制好,不要因为操作的数据量过多而导致失败. 演示一下发生此类错误的错误提示:

  5. SpringMVC连接MongoDB操作数据库

    <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Soft ...

  6. mongoDB操作详细

    简介 它和我们使用的关系型数据库最大的区别就是约束性,可以说文件型数据库几乎不存在约束性,理论上没有主外键约束,没有存储的数据类型约束等等 关系型数据库中有一个 "表" 的概念,有 ...

  7. 02:MongoDB操作

    1.1 MongoDB 增加 1.插入数据 1. 插入文档: insert 如果插入数据的时候,collection还不存在,自动创建集合 2. insertOne: 插入一条数据 3. insert ...

  8. mongodb初始化并使用node.js实现mongodb操作封装

    mongodb的下载只要在https://www.mongodb.com/网站就能够下载 下载后安装只用一直点next就可以,注意最好使用默认路径安装到C盘,然后在任意位置建立一个文件夹用于储存你的数 ...

  9. NodeJS下的Mongodb操作

    今天用Node写一个小程序中需要用到数据库操作,试用了一下,发现官方的驱动已经非常好用了,也支持async. 一个简单的实例如下: const MongoClient = require('mongo ...

随机推荐

  1. ionic 写一个五星评价(非指令)

    Controller里的代码: .controller('evaluateCtrl', function($scope, $state, $stateParams, $ionicPopup,$ioni ...

  2. Web 在线文件管理器学习笔记与总结(3)创建文件

    ① 创建文件 a. 文件名的合法性:不能包含 \/:*"<>| 等特殊字符 b. 检测当前目录下是否存在同名文件,如果存在提示请重命名后创建,如果不存在则直接创建 index.p ...

  3. 如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句的命令结束符为分号(;)。

    1.如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句的命令结束符为分号(;). 2.select查询的多个字段之间要用逗号“,”分割,如果查询涉及多个表,那多个表之 ...

  4. UITableview 多行删除

    //  RootViewController.m #import "RootViewController.h"#import "NextViewController.h& ...

  5. Ubuntu kill命令用法详解

    转自:Ubuntu kill命令用法详解 1. kill   作用:根据进程号杀死进程   用法: kill [信号代码] 进程ID   root@fcola:/# ps -ef | grep sen ...

  6. Nginx目录别名(Alias)支持PHP的配置

    需求:通过 example.com 访问 /var/data/www,但通过 example.com/pa 访问的却是 /var/data/phpmyadmin,即保护phpmyadmin不暴露在ww ...

  7. Jquery手册

    1.jQuery 选择器: 选择器 实例 选取 * $("*") 所有元素 #id $("#lastname") id="lastname" ...

  8. freebsd上安装nginx+php记录

    参考文章 https://wiki.freebsdchina.org/faq/ports http://www.vpsee.com/2014/04/install-nginx-php-apc-mysq ...

  9. GLFW is an Open Source, multi-platform library for OpenGL

    http://www.glfw.org/ http://download.csdn.net/user/hengyishu

  10. 【Android测试】【第十四节】Appium——简述

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5124340.html 前言 同样的,这一篇我要介绍的也是一 ...