mongodb创建数据库表语句

db.createCollection("CollectionName or tableName");

db.createCollection("ruiy",{id:1});

db.tableName.insert(id:1);

mongodb数据库数据删除

mongodb修改更新数据库记录

查询所有记录,行

简单条件查询

MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方。

    以我们公司项目为例,在早期的项目中,都在使用关系型数据库,用过SQLServer,Oracle,DB2,后来全部转向Mysql,原因很简 单:Mysql在性能不错的情况下,有着开源优势。Mysql的事务性与高性能是我们主要考虑的。后来,由于项目要用到用户系统,即会有大量的用户数据进 行交互--海量存储,Mysql的读写速度会有一点瓶颈,于是我们就想到了最近发展很强势的Nosql。在Nosql早期的memcache的发展下,又 出现了很多非关系型数据库,比如redis,mongodb。经过一段时间的测试,redis与mongodb的读写速度确实比Mysql有着很明显的优 势。mongodb的写入速度大约2.5W/次每秒。
    mongodb以BSON结构(二进制)进行存储,对海量数据存储有着很明显的优势。下面是Mongodb与Mysql的操作命令的对比

作用

MySQL

MongoDB

 

 

 

服务器守护进程

mysqld

mongod

客户端工具

mysql

mongo

逻辑备份工具

mysqldump

mongodump

逻辑还原工具

mysql

mongorestore

数据导出工具

mysqldump

mongoexport

数据导入工具

source

mongoimport

 

 

 

新建用户并授权

grant all on *.*
to username@'localhost'
 identified by 'passwd';

db.addUser("user","psw")
db.auth("user","psw")

显示库列表

show
databases;

show
dbs

进去库

use
dbname;

use
dbname

显示表列表

show
tables;

show
collections

查询主从状态

show
slave status;

rs.status

创建库

create
database name;

无需单独创建,直接use进去

创建表

create
table tname(id int);

无需单独创建,直接插入数据

删除表

drop
table tname;

db.tname.drop()

删除库

drop
database dbname;

首先进去该库,db.dropDatabase()

 

 

 

插入记录

insert
into tname(id) value(2);

db.tname.insert({id:2})

删除记录

delete
from tname where id=2;

db.tname.remove({id:2})

修改/更新记录

update
tname set id=3
where id=2;

db.tname.update({id:2},
{$set:{id:3}},false,true)

 

 

 

查询所有记录

select
* from tname;

db.tname.find()

查询所有列

select
id from tname;

db.tname.find({},{id:1})

条件查询

select
* from tname where id=2;

db.tname.find({id:2})

条件查询

select
* from tname where id < 2;

db.tname.find({id:{$lt:2}})

条件查询

select
* from tname where id >=2;

db.tname.find({id:{$gte:2}})

条件查询

select
* from tname where id=2
and name='steve';

db.tname.find({id:2,
name:'steve'})

条件查询

select
* from tname where id=2
or name='steve';

db.tname.find($or:[{id:2},
{name:'steve'}])

条件查询

select
* from tname limit 1;

db.tname.findOne()

 

 

 

模糊查询

select
* from tname where name
like "%ste%";

db.tname.find({name:/ste/})

模糊查询

select
* from tname where name
like "ste%";

db.tname.find({name:/^ste/})

 

 

 

获取表记录数

select
count(id) from tname;

db.tname.count()

获取有条件
的记录数

select
count(id) from tname
where id=2;

db.tname.find({id:2}).count()

查询时去掉
重复值

select
distinct(last_name)
from tname;

db.tname.distinct('last_name')

 

 

 

正排序查询

select
*from tname order by id;

db.tname.find().sort({id:1})

逆排序查询

select
*from tname
order by id desc;

db.tname.find().sort({id:-1})

 

 

 

取存储路径

explain
select * from tname
where id=3;

db.tname.find({id=3}).explain()

特别要注意的是:mongodb插入多个字段语法
> db.user.insert({id:1,name:'steve',sex:'male'})  正确
> db.user.insert({id:2},{name:'bear'},{sex:'female'})  错误

mongodbOperator的更多相关文章

  1. C# MongoDB

    一.搭建Mongodb 副本集 副本集中有三个角色: 主节点:所有副节点的数据均来自于主节点,并且只能对主节点进行读写操作.副节点:数据来自于主节点,可以进行读取操作,但是不能进行写操作.仲裁者:不含 ...

随机推荐

  1. 使用ssh对服务器进行登录

    一.什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会 ...

  2. (转)JavaWeb学习总结(十三)——使用Session防止表单重复提交

    如何防止表单重复提交 在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复 ...

  3. MySql Connector/Net Mysql like 搜索中文的问题(c#和asp.net连接mysql)

    Connector/Net 6.9.8 选择.net/mono即可,不需要安装. 将对应版本的MySql.Data.dll复制到bin目录下即可使用 http://dev.mysql.com/down ...

  4. java_annotation_01

    一,Annotation简介 J2SE5.0提供了很多新的我,其中一个很重要的我就是对元数据的支持,在J2SE5.0中,这种元数据被称为注释,通过使用注释,程序开发人员可以在不改变原有逻辑的情况下,在 ...

  5. 你好,C++(4)2.1.3 我的父亲母亲:编译器和链接器 2.1.4 C++程序执行背后的故事

    2.1.3  我的父亲母亲:编译器和链接器 从表面上看,我是由Visual Studio创建的,而实际上,真正负责编译源代码创建生成可执行程序HelloWorld.exe的却是Visual Studi ...

  6. 浅谈C++ 异常处理的语义和性能

    异常处理是个十分深奥的主题,这里只是浅论其对C++性能的影响. 在VC++中,有多个异常处理模式,三个最重要: No exception handling (无异常处理) C++ only (C++语 ...

  7. VS2012 ActiveX控件_D接口添加方法事项

    自己写的是Clock控件,所以控件的接口是_DClock 使用向导添加方法后,会在紫色区域自动生成红色代码:(添加Hello方法) dispinterface _DClock { properties ...

  8. 【USACO 1.4.3】等差数列

    [题目描述] 一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)的数列. 在这个问题中a是一个非负的整数,b是正整数.写一个程序来找出在双平方数集合 ...

  9. Java简介(1)

    起源 略. 组成 Java由四方面组成: 1.Java编程语言 2.Java文件格式 3.Java虚拟机(JVM) 4.Java应用程序接口(Java api) 体系 JavaSE , JavaEE, ...

  10. c# sqlserver备份还原(转)

    WinForm c# 备份 还原 数据库 其实是个非常简单的问题,一个Form,一个Button,一个OpenFileDialog,一个SaveFileDialog.下面给出备份与还原类 using ...