mngoDB 常用语法

http://topmanopensource.iteye.com/blog/1278812### 连接写法:[IP地址:端口号]
mongo 192.168.1.161:27017;
show dbs;

db;--显示正在使用的数据库
use asdfwerwe_test;
db.tab_data_result.find();
db.tab_data_period.find();

### 导入,导入数据格式很严谨
mongoimport -h 192.168.1.161:27017 -d asdfswe_test -c tab_data_result d:\data.txt

db.things.remove({"x":"12"});

条件
db.collection.find({"field":{$gt:value}});
db.collection.find({"field":{$lt:value}});
db.collection.find({"field":{$gte:value}});
db.collection.find({"field":{$lte:value}});

范围段
db.collection.find({"field":{$gt:value1,$lt:value2}});

$all匹配所有:
db.users.find({age:{$all:[6,7,8]}});

$exists判断字段是否存在
db.users.find({age:{$exists:true}});
不存在
db.users.find({age:{$exists:false}});

null的处理
db.things.find({y:null});

查询包含null的对象

db.things.find({age:{"$in":[null],"$exists":true}});

基本操作
db.AddUser(username,password)  //添加用户
db.auth(usrename,password)     //设置数据库连接验证

//例子

mongo 192.168.0.178

use admin

db.auth("mongosa" ,"abc123d");//授权登录

use basdfsd_test;

db.cloneDataBase(fromhost)     //从目标服务器克隆一个数据库
db.commandHelp(name)           //returns the help for the command
db.copyDatabase(fromdb,todb,fromhost)  //复制数据库fromdb---源数据库名称,todb---目标数据库名称,fromhost---源数据库服务器地址
db.createCollection(‘name‘,{size:3333,capped:333,max:88888})  //创建一个数据集,相当于一个表

db.currentOp()                 //取消当前库的当前操作
db.dropDataBase()              //删除当前数据库
db.eval(func,args)             //run code server-side
db.getCollection(cname)        //取得一个数据集合,同用法:db[‘cname‘] or
db.getCollenctionNames()       //取得所有数据集合的名称列表
db.getLastError()              //返回最后一个错误的提示消息
db.getLastErrorObj()           //返回最后一个错误的对象
db.getMongo()                  //取得当前服务器的连接对象get the server
db.getMondo().setSlaveOk()     //allow this connection to read from then nonmaster membr of a replica pair
db.getName()                   //返回当操作数据库的名称
db.getPrevError()              //返回上一个错误对象
db.getProfilingLevel()
db.getReplicationInfo()        //获得重复的数据
db.getSisterDB(name)           //get the db at the same server as this onew
db.killOp()                    //停止(杀死)在当前库的当前操作
db.printCollectionStats()      //返回当前库的数据集状态
db.printReplicationInfo()
db.printSlaveReplicationInfo()
db.printShardingStatus()       //返回当前数据库是否为共享数据库
db.removeUser(username)        //删除用户
db.repairDatabase()            //修复当前数据库
db.resetError()
db.runCommand(cmdObj)          //run a database command. if cmdObj is a string, turns it into {cmdObj:1}
db.setProfilingLevel(level)    //0=off,1=slow,2=all
db.shutdownServer()            //关闭当前服务程序
db.version()                   //返回当前程序的版本信息

数据集(表)操作

db.name.drop();//删除一个集合
db.test.find({id:10})          //返回test数据集ID=10的数据集
db.test.find({id:10}).count()  //返回test数据集ID=10的数据总数
db.test.find({id:10}).limit(2) //返回test数据集ID=10的数据集从第二条开始的数据集
db.test.find({id:10}).skip(8)  //返回test数据集ID=10的数据集从0到第八条的数据集
db.test.find({id:10}).limit(2).skip(8)  //返回test数据集ID=1=的数据集从第二条到第八条的数据
db.test.find({id:10}).sort()   //返回test数据集ID=10的排序数据集
db.test.findOne([query])       //返回符合条件的一条数据
db.test.getDB()                //返回此数据集所属的数据库名称
db.test.getIndexes()           //返回些数据集的索引信息
db.test.group({key:...,initial:...,reduce:...[,cond:...]})
db.test.mapReduce(mayFunction,reduceFunction,<optional params>)
db.test.remove(query)                      //在数据集中删除一条数据
db.test.renameCollection(newName)          //重命名些数据集名称
db.test.save(obj)                          //往数据集中插入一条数据
db.test.stats()                            //返回此数据集的状态
db.test.storageSize()                      //返回此数据集的存储大小
db.test.totalIndexSize()                   //返回此数据集的索引文件大小
db.test.totalSize()                        //返回些数据集的总大小
db.test.update(query,object[,upsert_bool]) //在此数据集中更新一条数据
db.test.validate()                         //验证此数据集
db.test.getShardVersion()                  //返回数据集共享版本号

MongoDB语法与现有关系型数据库SQL语法比较
db.test.find({‘name‘:‘foobar‘})
  // SELECT * FROM test WHERE name=‘foobar‘
db.test.find()
  // SELECT * FROM test
db.test.find({‘data_id‘:10}).count()
  // SELECT COUNT(*) FROM test WHERE data_id=10
db.test.find().skip(10).limit(20)
  // SELECT * FROM test LIMIT 10,20
db.test.find({‘data_id‘:{$in:[25,35,45]}})
  // SELECT * FROM test WHERE data_id IN (25,35,45)
db.test.find().sort({‘data_id‘:-1})

// SELECT * FROM test ORDER BY data_id DESC

db.test.find().sort({‘data_id‘:1})
  // SELECT * FROM test ORDER BY data_id ASC
db.test.distinct(‘name‘,{‘data_id‘:{$lt:20}})
  // SELECT DISTINCT(name) FROM test WHERE data_id<20
db.test.group({key:{‘name‘:true},cond:{‘name‘:‘foo‘},reduce:function(obj,prev){prev.msum+=obj.marks;},initial:{msum:0}})
  // SELECT name,SUM(marks) FROM test GROUP BY name
db.test.find(‘this.data_id<20‘,{name:1})
  // SELECT name FROM test WHERE data_id<20
db.test.insert({‘name‘:‘foobar‘,‘age‘:25})
  // INSERT INTO test (‘name‘,‘age‘) VALUES(‘foobar‘,25)
db.test.remove({})
  // DELETE * FROM test
db.test.remove({‘age‘:20})
  // DELETE test WHERE age=20
db.test.remove({‘age‘:{$lt:20}})
  // SELETE test WHERE age<20
db.test.remove({‘age‘:{$lte:20}})
  // DELETE test WHERE age<=20
db.test.remove({‘age‘:{$gt:20}})
  // DELETE test WHERE age>20
db.test.remove({‘age‘:{$gte:20}})
  // DELETE test WHERE age>=20
db.test.remove({‘age‘:{$ne:20}})
  // DELETE test WHERE age!=20
db.test.update({‘name‘:‘foobar‘},{$set:{‘age‘:36}})
  // UPDATE test SET age=36 WHERE name=‘foobar‘
db.test.update({‘name‘:‘foobar‘},{$inc:{‘age‘:3}})
  // UPDATE test SET age=age+3 WHERE NAME=‘foobar‘

Mongodb使用总结
1.启动mongodb的服务使用:
  mongod --help
  启动mongodb的本地服务(data目录和bin同级别)
   mongod --dbpath ../data
  从参数文件中启动
   mongod -f /etc/mongodb.cnf
  后台启动方式:
  mongod --dbpath=../data --logpath=../logs --fork

2.登录mongodb数据库
  mongo --help
  登录本地数据库
  mongo
  登录远程数据库:
  mongo 123.123.101.41:27017/mash5
3.恢复本地dump文件
  查看帮助:
  mongorestore --help
  导入本地的dump文件
  mongorestore C:\mongodb\bin\dump_bak_11241739\mash5
  导入多个数据库
  mongorestore --directoryperdb C:\mongodb\bin\dump_bak_11241739
4.备份数据库
   查看帮助
   mongodump --help

在mongodump命令目录里生成一个dump目录存储导出文件(导出多个数据库)
   mongodump

导出数据库到某一个目录(单个数据库)
   mongodump --db mash5 -o C:\temp

远程导出
   mongodump -h localhost --port 27017  -o c:\temp
5.查看mongodb的数据库性能

查看帮助
  mongostat --help

查看所有性能相关的情况
  mongostat
6.查看mongo相关的系统信息
  查看mongos的帮助
    mongos --help
  查看mongo的版本
    mongos --version
  修改一些mongo数据库的相关的参数信息可以采用mongos

7.mongo数据库中gridfs相关的文件信息

8.mongoexport导出
   导出test数据库中things表的数据信息
   mongoexport -d test -c things -o things.dat
     参数说明
  -d  指明使用的库,  本例中为” my_mongodb”
  -c  指明要导出的表,  本例中为”user”
  -o  指明要导出的文件名,  本例中为”user.dat” 
  从上面可以看到导出的方式使用的是 JSON的样式

导出test数据库中things表中x,y字段以csv格式导出
    mongoexport -d test -c things -f x,y --csv -o things.data
   输出test数据库中things表中x,y字段以json数组格式显示
    mongoexport -d test -c things -f x,y --jsonArray

9.mongoimport 导入
 导入JSON格式的test数据库things表中
 mongoimport -d test -c things --type json --drop --file things.data
 导入cvs数据库
 ./mongoimport -d my_mongodb -c user  --type csv --headerline --file 
user_csv.dat 
  参数说明
  -type  指明要导入的文件格式 
  -headerline  批明不导入第一行,因为第一行是列名 
  -file   指明要导入的文件路径

mongo常用一些命令:

寻求帮助
help

查看所有的数据库
show dbs
查看一个数据库所有的表
show collection
查看用户
show users
show profile;
查看主机的名称
hostname();
查看当前目录
pwd();
查看数据库相关的帮助:
db.help();
查看mongo数据库当前数据库服务器状态
db.serverStatus();
查看当前数据库名称:
db.getName();
查看当前版本
db.version();
查看数据库表的情况
db.getCollectionNames();
查看数据库是否存在一个表
db.getCollection("Feed");
是否为主数据库
db.isMaster();

数据库的情况
db.stats();

关闭数据库
use admin
db.shutdownServer();
获取当前连接的对象
db.getMongo()
删除Mongo数据库
db.dropDatabase();

创建一个Mongo表对象
db.createCollection("TBS");
删除数据的表对象
db.mash5.drop();
显示当前数据库的操作
db.currentOp();

查看所有的数据库命令:
db.listCommands();

查看数据库相关命令:
db.help();

常用Mongodb SQL语句:
分页查询
db.Feed.find().skip(300).limit(10000);   
单个条件查询
db.Task.find({ "tag" : "个人" }).limit(50);
多个条件查询
db.Task.find({ "tag" : "个人", "_id" : ObjectId("4e169d85cc4370e29bc6c72e") }).limit(50).explain();
根据结构型查询
db.Task.find({ "bo.Fields.Label" : "私信" }).limit(50).explain();
db.Task.find({"status":"1"}).count();
db.Task.findOne({"status":"1"});

JS特性:
for(var i=0;i<20;i++){
 db.Task.save({x:i*4,y:i*i});
}

var cursor=db.Task.find();
while(cursor.hasNext()){
  printjson(cursor.next());
}

db.Task.find().forEach(printjson);

var cursor=db.things.find();
printjson(cursor[4]);

var arr=db.things.find().toArray();
arr[5];

printjson(db.things.findOne({name:"mongodb"}));

db.things.update({name:"mongodb"},{$set:{name:"mongo_db"}})

时间: 2024-10-29 05:16:07

mngoDB 常用语法的相关文章

SQL常用语法大全

一.基础1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack 4.说明:创建新表create

Emmet常用语法

Emmet常用语法1.输入!和html:5(不能大写),按下TAB 键,快速生成一个 HTML5 的标准文档初始结构. html:xt 生成 HTML4 过渡型 html:4s 生成 HTML4 严格型2.生成带有 id .class 的 HTML 标签 (1)Emmet 的语法有点类似 CSS 的语法,生成 id 为 aaa 的 div 标签,我们只需要编写下面指令:#aaaEmmet 默认的标签为 div ,如果我们不给出标签名称的话,默认就生成 div 标签. (2)如果编写一个 clas

php正则表达式入门-常用语法格式

原文地址:http://www.jbxue.com/article/24467.html 分享下php正则表达式中的一些常用语法格式,用于匹配字母.数字等,个人感觉还不错. 语法格式:位于定界符"/"之间.较为常用的元字符包括: “+”, “*”,以及 “?”.其中, “+”元字符规定其前导字符必须在目标对象中连续出现一次或多次, “*”元字符规定其前导字符必须在目标对象中出现零次或连续多次, 而“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次. /jim{2,6}/<

SQLServer2005 常用语法大全

SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建备份数据的 device U

ABAP 指針常用语法

1 .定义指針 :指針的定義主 要有以下語句 定義任意類型的指針,但是不具備欄位結構(僅僅是一個地址) FIELD-SYMBOLS <carrid> TYPE ANY. 參考數據庫表定義(這種指針是含有欄位結構的,參考內表同理) FIELD-SYMBOLS <sflight> TYPE sflight. FIELD-SYMBOLS <sflight> LIKE sflight. FIELD-SYMBOLS <sflight> LIKE LINE OF sfl

Oracle常用语法

1,case用法 SELECT CASE WHEN T.FLAG='0' THEN T.USERID WHEN T.FLAG='1' THEN T.ORGID ELSE NULL END AS '标识' FROM XTXMXX T 2,decode用法 --如果FLAG等于1,则转为USERID,如果为0,则转为ORGID,其他的为2 SELECT DECODE(T.FLAG,1,T.USERID,0,T.ORGID,2) FROM XTXMXX T ; 3,创建sequence -- Crea

T-SQL和MySQL的一些常用语法的区别

本文将主要列出MySQL与SqlServer的SQL语句的一些常用语法的不同之处,且以常用的存储过程的相关内容为主. 1. 标识符限定符 SqlServer [] MySql `` 2. 字符串相加 SqlServer 直接用 + MySql concat() 3. isnull() SqlServer isnull() MySql ifnull() 注意:MySql也有isnull()函数,但意义不一样 4. getdate() SqlServer getdate() MySql now()

jsp 4种常用语法3个编译指令7个动作指令

4种常用语法: 注释:<%--注释--%> 声明:<%!声明部分%> 输出:<%=%> 脚本:可以包含任何java可执行代码.例 <% for(int i=0; i<10; i++) { %> <% } %> 3个常用编译指令: page:针对当前页面的指令 include:指定包含另一页面 taglib:定义和访问自定义标签 7个动作指令 jsp:forward  将请求的处理转发到下一页面 jsp:param 传递参数,与其他支持参数的

Perl常用语法记录

Perl常用语法记录 ##包的切换和调用其它包的方式 #package A; #my $a=10; #package B; #print $A::a; #print $a;     ##local局部标识符的使用 #$aa=20; #{ # local $aa; # $aa=10; # print "$aa \n"; # #} #print $aa; ##别名的使用 =comment $b=10; $a=1; $c=200; { local *b; *b=*a; $b=20; prin