`

mongodb使用总结1

阅读更多

 

 

安装mongodb

$ # replace "1.6.4" in the url below with the version you want

$ curl http://downloads.mongodb.org/linux/mongodb-linux-x86_64-1.6.4.tgz > mongo.tgz

$ tar xzf mongo.tgz

$ cd mongo

$./mongod  #启动服务器

$./mongo #启动客户端

 

 

 

 

 

1.mongodb 命令列表

  Mongo查询语法与SQL语法对照表

 

 

MySQL executable

Oracle executable

Mongo executable

mysqld 

oracle 

mongod 

mysql 

sqlplus 

mongo 

 

 

mongodb查询语法与SQL语法对比

 

SQL Statement 

Mongo Query Language Statement 

C++客户端调用语法

using namespace bson;

DBClientConnection c;

c.connect("somehost");

CREATE TABLE USERS (a Number, b Number)

db.createCollection("mycoll")

 

 

INSERT INTO USERS VALUES(1,1)

db.users.insert({a:1,b:1})

// GENOID is optional. if not done by client, server will add an _id

c.insert("mydb.users", BSON(GENOID<<"a"<<1<<"b"<<1));

// then optionally:

string err = c.getLastError();

SELECT a,b FROM users

db.users.find({}, {a:1,b:1})

auto_ptr<DBClientCursor> cursor = c.query("mydb.users", Query(), 0, 0, BSON("a"<<1<<"b"<<1));

SELECT * FROM users

db.users.find()

auto_ptr<DBClientCursor> cursor = c.query("mydb.users", Query());

SELECT * FROM users WHERE age=33

db.users.find({age:33})

auto_ptr<DBClientCursor> cursor = c.query("mydb.users", QUERY("age"<<33))

// or:

auto_ptr<DBClientCursor> cursor = c.query("mydb.users", BSON("age"<<33))

SELECT a,b FROM users WHERE age=33

db.users.find({age:33}, {a:1,b:1})

 

SELECT * FROM users WHERE age=33 ORDER BY name

db.users.find({age:33}).sort({name:1})

 

auto_ptr<DBClientCursor> cursor = c.query("mydb.users", QUERY("age"<<33).sort("name"));

SELECT * FROM users WHERE age>33

db.users.find({'age':{$gt:33}})})

 

SELECT * FROM users WHERE age<33

db.users.find({'age':{$lt:33}})})

 

SELECT * FROM users WHERE name LIKE "%Joe%"

db.users.find({name:/Joe/})

 

SELECT * FROM users WHERE name LIKE "Joe%"

db.users.find({name:/^Joe/})

 

 

SELECT * FROM users WHERE age>33 AND age<=40

db.users.find({'age':{$gt:33,$lte:40}})})

auto_ptr<DBClientCursor> cursor = c.query("mydb.users", QUERY("age"<<GT<<33<<LTE<<40));

 

SELECT * FROM users ORDER BY name DESC

 

db.users.find().sort({name:-1})

 

 

SELECT * FROM users WHERE a=1 and b='q'

db.users.find({a:1,b:'q'})

 

SELECT * FROM users LIMIT 10 SKIP 20

db.users.find().limit(10).skip(20)

auto_ptr<DBClientCursor> cursor = c.query("mydb.users", Query(), 10, 20);

SELECT * FROM users WHERE a=1 or b=2

 

db.users.find( { $or : [ { a : 1 } , { b : 2 } ] } )

 

SELECT * FROM users LIMIT 1

db.users.findOne()

bo obj = c.findOne("mydb.users", Query());

SELECT DISTINCT last_name FROM users

db.users.distinct('last_name')

// no helper for distinct in c++ driver, so send command manually

bo cmdResult;

bool ok = c.runCommand("mydb", BSON("distinct"<<"users"<<key<<"last_name"), cmdResult);

list<bo> results;

cmdResult["values"].Obj().Vals(results);

SELECT COUNT(*y)

FROM users

db.users.count()

 

SELECT COUNT(*y)

FROM users where AGE > 30

db.users.find({age: {'$gt': 30}}).count()

unsigned long long n = c.count("mydb.users", QUERY("age:"<<GT<<30));

SELECT COUNT(AGE) from users

db.users.find({age: {'$exists': true}}).count()

 

CREATE INDEX myindexname ON users(name)

db.users.ensureIndex({name:1})

 

c.ensureIndex("mydb.users", BSON("name"<<1));

CREATE INDEX myindexname ON users(name,ts DESC)

db.users.ensureIndex({name:1,ts:-1})

 

 

EXPLAIN SELECT * FROM users WHERE z=3

db.users.find({z:3}).explain()

 

UPDATE users SET a=1 WHERE b='q'

db.users.update({b:'q'}, {$set:{a:1}}, false, true)

 

UPDATE users SET a=a+2 WHERE b='q'

db.users.update({b:'q'}, {$inc:{a:2}}, false, true)

c.update("mydb.users", QUERY("b"<<"q"), BSON("$inc"<<BSON("a"<<2)), false, true);

// then optionally:

string err = c.getLastError();

bool ok = err.empty();

DELETE FROM users WHERE z="abc"

db.users.remove({z:'abc'});

c.remove("mydb.users", QUERY("z"<<"abc"));

// then optionally:

string err = c.getLastError();

 

 

 

 

 

 

命令帮助列表:

  使用mongo进入交互式客户端:

 

   > help

        db.help()                    help on db methods

        db.mycoll.help()             help on collection methods

        rs.help()                    help on replica set methods

        help admin                   administrative help

        help connect                 connecting to a db help

        help keys                    key shortcuts

        help misc                    misc things to know

        help mr                      mapreduce

 

        show dbs                     show database names

        show collections             show collections in current database

        show users                   show users in current database

        show profile                 show most recent system.profile entries with time >= 1ms

        use <db_name>                set current database

        db.foo.find()                list objects in collection foo

        db.foo.find( { a : 1 } )     list objects in foo where a == 1

        it                           result of the last line evaluated; use to further iterate

        DBQuery.shellBatchSize = x   set default number of items to display on shell

        exit                         quit the mongo shell

> db.help()

DB methods:

        db.addUser(username, password[, readOnly=false])

        db.auth(username, password)

        db.cloneDatabase(fromhost)

        db.commandHelp(name) returns the help for the command

        db.copyDatabase(fromdb, todb, fromhost)

        db.createCollection(name, { size : ..., capped : ..., max : ... } )

        db.currentOp() displays the current operation in the db

        db.dropDatabase()

        db.eval(func, args) run code server-side

        db.getCollection(cname) same as db['cname'] or db.cname

        db.getCollectionNames()

        db.getLastError() - just returns the err msg string

        db.getLastErrorObj() - return full status object

        db.getMongo() get the server connection object

        db.getMongo().setSlaveOk() allow this connection to read from the nonmaster member of a replica pair

        db.getName()

        db.getPrevError()

        db.getProfilingLevel() - deprecated

        db.getProfilingStatus() - returns if profiling is on and slow threshold 

        db.getReplicationInfo()

        db.getSiblingDB(name) get the db at the same server as this one

        db.isMaster() check replica primary status

        db.killOp(opid) kills the current operation in the db

        db.listCommands() lists all the db commands

        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.serverStatus()

        db.setProfilingLevel(level,<slowms>) 0=off 1=slow 2=all

        db.shutdownServer()

        db.stats()

        db.version() current version of the server

        db.getMongo().setSlaveOk() allow queries on a replication slave server

        db.fsyncLock() flush data to disk and lock server for backups

        db.fsyncUnock() unlocks server following a db.fsyncLock()

> db.mycoll.help()

DBCollection help

        db.mycoll.find().help() - show DBCursor help

        db.mycoll.count()

        db.mycoll.dataSize()

        db.mycoll.distinct( key ) - eg. db.mycoll.distinct( 'x' )

        db.mycoll.drop() drop the collection

        db.mycoll.dropIndex(name)

        db.mycoll.dropIndexes()

        db.mycoll.ensureIndex(keypattern[,options]) - options is an object with these possible fields: name, unique, dropDups

        db.mycoll.reIndex()

        db.mycoll.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.

                                                      e.g. db.mycoll.find( {x:77} , {name:1, x:1} )

        db.mycoll.find(...).count()

        db.mycoll.find(...).limit(n)

        db.mycoll.find(...).skip(n)

        db.mycoll.find(...).sort(...)

        db.mycoll.findOne([query])

        db.mycoll.findAndModify( { update : ... , remove : bool [, query: {}, sort: {}, 'new': false] } )

        db.mycoll.getDB() get DB object associated with collection

        db.mycoll.getIndexes()

        db.mycoll.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } )

        db.mycoll.mapReduce( mapFunction , reduceFunction , <optional params> )

        db.mycoll.remove(query)

        db.mycoll.renameCollection( newName , <dropTarget> ) renames the collection.

        db.mycoll.runCommand( name , <options> ) runs a db command with the given name where the first param is the collection name

        db.mycoll.save(obj)

        db.mycoll.stats()

        db.mycoll.storageSize() - includes free space allocated to this collection

        db.mycoll.totalIndexSize() - size in bytes of all the indexes

        db.mycoll.totalSize() - storage allocated for all data and indexes

        db.mycoll.update(query, object[, upsert_bool, multi_bool])

        db.mycoll.validate( <full> ) - SLOW

        db.mycoll.getShardVersion() - only for use with sharding

> db.users.find()  #users是collection的名称

{ "_id" : ObjectId("4de71d5faf575684b391b8db"), "a" : 1, "b" : 1 }

> show dbs

admin   (empty)

local   (empty)

test    0.203125GB

> show collections

mycoll

system.indexes

testCollection

users


 

 

 java端调用

 

 1到https://github.com/mongodb/mongo-java-driver/downloads 下载java客户端需要的jar,引入工程里面,

 2.

    package com.alibaba.asc.demoLearnCenter.mongo;

import java.net.UnknownHostException;
import java.util.Set;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

public class MongoDemo1 {

    public static void main(String[] args) throws UnknownHostException, MongoException {

        Mongo m = new Mongo("10.20.150.205", 27017);

        DB db = m.getDB("test");
        
        Set<String> colls = db.getCollectionNames();

        for (String s : colls) {
            System.out.println(s);
        }
        
        DBCollection coll = db.getCollection("testCol");
        
        BasicDBObject doc = new BasicDBObject();

        doc.put("name", "MongoDB");
        doc.put("type", "database");
        doc.put("count", 1);

        BasicDBObject info = new BasicDBObject();

        info.put("x", 203);
        info.put("y", 102);

        doc.put("info", info);

        coll.insert(doc);
        
        System.out.println(coll.getCount());

        DBCursor cur = coll.find();

        while(cur.hasNext()) {
            System.out.println(cur.next());
        }
        
        BasicDBObject query = new BasicDBObject();

        query.put("type", "database");

        cur = coll.find(query);

        while(cur.hasNext()) {
            System.out.println(cur.next());
        }
    }
}

 

输出:

mycoll

system.indexes

testCollection

users

1

{ "_id" : { "$oid" : "4de72c04a1f3a9ef7fc0c750"} , "name" : "MongoDB" , "type" : "database" , "count" : 1 , "info" : { "x" : 203 , "y" : 102}}

{ "_id" : { "$oid" : "4de72c04a1f3a9ef7fc0c750"} , "name" : "MongoDB" , "type" : "database" , "count" : 1 , "info" : { "x" : 203 , "y" : 102}}


分享到:
评论

相关推荐

    MONGODB学习总结入门篇.pdf

    MongoDB学习总结入门篇.pdf MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。下面将对MongoDB的基本概念、特点、使用原理和基本操作进行详细介绍。 1. MongoDB基本...

    spring mongodb 用法总结和实例

    1. **@Document** 注解:在Java实体类上使用`@Document`注解表示该类将映射到MongoDB的一个集合。例如,`Person`类通过`@Document(collection="person")`声明对应于名为"person"的集合。 2. **MongoTemplate**:`...

    mongodb总结

    MongoDB 使用BSON(Binary JSON)格式存储数据,这是一种类似JSON的二进制表示,支持更丰富的数据类型,如日期、整数、双精度浮点数和二进制数据。文档是MongoDB中的基本数据单元,类似于JSON对象。 2. 集合与...

    java中mongodb使用环境详细配置

    1. MongoDB 的下载和安装 MongoDB 提供了多种操作系统的版本,包括 Windows、Linux、Mac 等。下载地址是 http://www.mongodb.org/downloads。用户可以根据自己的操作系统选择合适的版本。在这里,我们下载的是 ...

    MongoDB基础(自己总结不喜勿喷)

    总结来说,MongoDB的基础操作涵盖了数据库的基本管理、数据的增删改查,而副本集和分片则是其在高可用性和可扩展性方面的核心特性。通过深入理解和熟练掌握这些知识,可以有效地利用MongoDB处理大规模的分布式数据...

    MongoDB学习总结笔记

    1. **MongoDB的基本概念**:MongoDB以集合(Collections)的形式存储数据,集合相当于关系型数据库中的表。集合内包含文档(Documents),文档是JSON格式的数据结构,可以包含嵌套的键值对或数组。 2. **数据模型**...

    MongoDB实验 - .docx

    本实验报告旨在详细介绍 MongoDB 的安装、配置和基本操作步骤,本报告基于 CentOS 7 系统,通过一步一步的截图和文字说明,帮助读者快速掌握 MongoDB 的使用。 一、安装 MongoDB 首先,我们需要配置 MongoDB 的 ...

    spring-data使用mongodbTemplate对MongoDB进行读写操作

    总结来说,Spring Data MongoDB通过`MongoDBTemplate`简化了MongoDB的集成和操作,使得开发者能够专注于业务逻辑而不是底层数据库交互。对于初学者,这是一个很好的起点,可以快速上手MongoDB和Spring Data的使用。

    windows下mongodb安装与使用整理

    ### Windows 下 MongoDB 安装与使用详解 #### 一、MongoDB 简介 MongoDB 是一种基于分布式文件存储的开源数据库系统。它属于 NoSQL 数据库的一种,使用 BSON(Binary JSON)格式来存储数据,支持动态模式,使得开发...

    mongoDB非关系型数据库安装以及使用指南

    1. 创建数据库:使用`use &lt;database_name&gt;`命令,如果数据库不存在,MongoDB会自动创建。 2. 插入数据:`db.&lt;collection_name&gt;.insertOne()`,例如`db.users.insertOne({name: "Alice", age: 25})`。 3. 查询数据:`...

    mongodb 的使用.docx

    总结,MongoDB 是一个功能强大的 NoSQL 数据库,其易于安装、管理用户权限和数据操作的特性使其成为许多企业的首选。通过理解并熟练掌握这些基础知识,可以有效地利用 MongoDB 构建高效、可扩展的应用程序。

    spark 连接 mongodb 使用例子

    总结来说,这个示例提供了使用Java、Spark、MongoDB、Spring和Maven实现数据操作的基础步骤。它涵盖了从设置环境、构建项目、连接数据库到执行CRUD操作的全过程,对于学习和实践中处理大数据与NoSQL数据库的集成非常...

    mongodb学习总结.docx

    MongoDB 是一种流行的NoSQL数据库系统,以C++语言编写并开源。NoSQL数据库与传统的关系型数据库(RDBMS)不同,它不依赖于固定的表格模式,这使得NoSQL...因此,选择是否使用MongoDB应根据具体业务需求和技术栈来决定。

    mongodb1067错误解决1

    4. **使用命令行工具**:可以使用以下命令来安装或卸载MongoDB服务,并指定配置文件: ```bash mongod.exe --config E:\ruanjian\MongoDB\mongod.cfg --remove mongod.exe --config E:\ruanjian\MongoDB\mongod....

    MongoDB总结,文件为md 格式 可以利用Typora打开文件

    通过阅读这份"MongoDB总结"文件,学习者将能够掌握MongoDB的基本概念、操作以及在实际项目中的应用,为进一步学习和使用MongoDB打下坚实基础。利用Markdown格式,内容易于阅读和理解,结合Typora等编辑器,学习体验...

    mongodb 使用手册

    总结来说,MongoDB是一个功能强大的文档型数据库,适用于各种现代应用场景。了解并掌握其安装、使用和基本语法是开发过程中不可或缺的技能。通过阅读和实践本手册,你将能够熟练地运用MongoDB进行数据存储和处理。

    Morphia和MongoDB学习总结<三>

    1. **连接MongoDB**:使用`MongoClient`和`MongoDatabase`,Morphia可以建立到MongoDB服务器的连接,并选择要操作的数据库。 2. **数据存取**:通过`Datastore`接口,我们可以执行CRUD(创建、读取、更新、删除)...

    MongoDB在京东的使用

    总结,MongoDB在京东的使用充分体现了其作为现代NoSQL数据库的优势,不仅能满足电商平台的高并发、大数据需求,还能提供灵活的数据模型和强大的数据分析能力,助力京东提升用户体验和服务质量。通过不断优化和创新,...

    mongodb数据库的学习与总结

    1. MongoDB核心概念: - 文档(Document):MongoDB中的数据以键值对的形式存储,这种形式被称为文档,类似于JSON对象。 - 集合(Collection):集合是文档的集合,类似于关系数据库中的表。 - 数据库(Database...

Global site tag (gtag.js) - Google Analytics