客户端和服务端的安装

# rpm -ivh mongo-10gen-2.4.6-mongodb_1.x86_64.rpm mongo-10gen-server-2.4.6-mongodb_1.x86_64.rpm





创建数据库存放数据目录

# mkdir -pv /mongodb/data

mkdir: created directory `/mongodb'

mkdir: created directory `/mongodb/data'

[root@node2 ~]# chown -R mongod.mongod /mongodb/data





修改配置文件

[root@node2 ~]# vim /etc/mongod.conf

[root@node2 ~]# service mongod start





可以通过访问web界面显示服务器状态:

http://192.168.8.39:28017/





数据库常见操作:

进入数据库

# mongo

  1. > help
  2. db.help() help on db methods
  3. db.mycoll.help() help on collection methods
  4. sh.help() sharding helpers
  5. rs.help() replica set helpers
  6. help admin administrative help
  7. help connect connecting to a db help
  8. help keys key shortcuts
  9. help misc misc things to know
  10. help mr mapreduce
  11.  
  12. show dbs show database names
  13. show collections show collections in current database
  14. show users show users in current database
  15. show profile show most recent system.profile entries with time >= 1ms
  16. show logs show the accessible logger names
  17. show log [name] prints out the last segment of log in memory, 'global' is default
  18. use <db_name> set current database
  19. db.foo.find() list objects in collection foo
  20. db.foo.find( { a : 1 } ) list objects in foo where a == 1
  21. it result of the last line evaluated; use to further iterate
  22. DBQuery.shellBatchSize = x set default number of items to display on shell
  23. exit quit the mongo shell

> use testdb

switched to db testdb

> show collections

> show dbs

admin (empty)

local 0.078125GB

test (empty)

testdb (empty)

> db.testcoll.insert({name: "tom"})

> show collections

system.indexes

testcoll

> db.testcoll.find()

{ "_id" : ObjectId("575cd1692756c2ee1a25da27"), "name" : "tom" }

> db.testcoll.insert({name: 'jack'})

> db.testcoll.find()

{ "_id" : ObjectId("575cd1692756c2ee1a25da27"), "name" : "tom" }

{ "_id" : ObjectId("575cd1962756c2ee1a25da28"), "name" : "jack" }

> db.testcoll.insert({name: 'lily',age: 18},{name: 'lucy', age: 19})





显示状态:

> db.testcoll.stats()

{

"ns" : "testdb.testcoll",

"count" : 3,

"size" : 132,

"avgObjSize" : 44,

"storageSize" : 4096,

"numExtents" : 1,

"nindexes" : 1,

"lastExtentSize" : 4096,

"paddingFactor" : 1,

"systemFlags" : 1,

"userFlags" : 0,

"totalIndexSize" : 8176,

"indexSizes" : {

"_id_" : 8176

},

"ok" : 1

}





删除文档

> show collections

system.indexes

testcoll

> show dbs

admin (empty)

local 0.078125GB

test (empty)

testdb 0.203125GB

> db.testcoll.drop()

true

> show collections

system.indexes





创建新表

  1. > use itpart
  2. switched to db itpart
  3. > db.worker.insert({name: 'jack'})
  4. > db.worker.insert({name: 'tom'})
  5. > db.worker.insert({name: 'lily',age: 22})
  6. > db.worker.insert({name: 'lucy',age: 23})
  7. > db.worker.find()
  8. { "_id" : ObjectId("575cd3922756c2ee1a25da2a"), "name" : "jack" }
  9. { "_id" : ObjectId("575cd39a2756c2ee1a25da2b"), "name" : "tom" }
  10. { "_id" : ObjectId("575cd3ac2756c2ee1a25da2c"), "name" : "lily", "age" : 22 }
  11. { "_id" : ObjectId("575cd3b72756c2ee1a25da2d"), "name" : "lucy", "age" : 23 }
  12. > db.city.insert({area: 'shenzhen'})
  13. > show collections
  14. city
  15. system.indexes
  16. worker
  17. > db.city.find()
  18. { "_id" : ObjectId("575cd3ef2756c2ee1a25da2e"), "area" : "shenzhen" }
  19. > db.worker.find()
  20. { "_id" : ObjectId("575cd3922756c2ee1a25da2a"), "name" : "jack" }
  21. { "_id" : ObjectId("575cd39a2756c2ee1a25da2b"), "name" : "tom" }
  22. { "_id" : ObjectId("575cd3ac2756c2ee1a25da2c"), "name" : "lily", "age" : 22 }
  23. { "_id" : ObjectId("575cd3b72756c2ee1a25da2d"), "name" : "lucy", "age" : 23 }

查找年龄大于22的元素

> db.worker.find({age:{$gt: 22}})

{ "_id" : ObjectId("575cd3b72756c2ee1a25da2d"), "name" : "lucy", "age" : 23 }

只显示name

> db.worker.find({age: {$gt: 22}},{name:1 })

{ "_id" : ObjectId("575cd3b72756c2ee1a25da2d"), "name" : "lucy" }





修改元素:

> db.worker.update({age: {$gt: 18}}, {$set: { status: 'A'}},{multi: true})

> db.worker.find()

{ "_id" : ObjectId("575cd3922756c2ee1a25da2a"), "name" : "jack" }

{ "_id" : ObjectId("575cd39a2756c2ee1a25da2b"), "name" : "tom" }

{ "_id" : ObjectId("575cd4f52756c2ee1a25da2f"), "age" : 22, "name" : "jack", "status" : "A" }

{ "_id" : ObjectId("575cd3ac2756c2ee1a25da2c"), "age" : 22, "name" : "lily", "status" : "A" }

{ "_id" : ObjectId("575cd3b72756c2ee1a25da2d"), "age" : 23, "name" : "lucy", "status" : "A" }





删除元素:

  1. > db.worker.remove({status: 'B'})
  2. > db.worker.find()
  3. { "_id" : ObjectId("575cd3922756c2ee1a25da2a"), "name" : "jack" }
  4. { "_id" : ObjectId("575cd39a2756c2ee1a25da2b"), "name" : "tom" }
  5. { "_id" : ObjectId("575cd3ac2756c2ee1a25da2c"), "age" : 22, "name" : "lily", "status" : "A" }
  6. { "_id" : ObjectId("575cd3b72756c2ee1a25da2d"), "age" : 23, "name" : "lucy", "status" : "A" }

批量插入数据:

> for(i=1;i<=100;i++) db.testcoll.insert({name: "user" + i,age: i,gender: 'm',preferbooks: ['first book','second book']})

显示前三行

> db.testcoll.find().limit(3)

移除 年龄为8的元素

> db.testcoll.remove({age: 8})

查找年龄大于93的元素

> db.testcoll.find({age: {$gte: 93}})

找出年龄在60~70之间的元素

  1. > db.testcoll.find({$and: [{age: {$gte: 60}}, {age: {$lte: 70}}]})
  2. { "_id" : ObjectId("575cd8302756c2ee1a25da6b"), "name" : "user60", "age" : 60, "gender" : "m", "preferbooks" : [ "first book", "second book" ] }
  3. { "_id" : ObjectId("575cd8302756c2ee1a25da6c"), "name" : "user61", "age" : 61, "gender" : "m", "preferbooks" : [ "first book", "second book" ] }
  4. { "_id" : ObjectId("575cd8302756c2ee1a25da6d"), "name" : "user62", "age" : 62, "gender" : "m", "preferbooks" : [ "first book", "second book" ] }
  5. { "_id" : ObjectId("575cd8302756c2ee1a25da6e"), "name" : "user63", "age" : 63, "gender" : "m", "preferbooks" : [ "first book", "second book" ] }
  6. { "_id" : ObjectId("575cd8302756c2ee1a25da6f"), "name" : "user64", "age" : 64, "gender" : "m", "preferbooks" : [ "first book", "second book" ] }
  7. { "_id" : ObjectId("575cd8302756c2ee1a25da70"), "name" : "user65", "age" : 65, "gender" : "m", "preferbooks" : [ "first book", "second book" ] }
  8. { "_id" : ObjectId("575cd8302756c2ee1a25da71"), "name" : "user66", "age" : 66, "gender" : "m", "preferbooks" : [ "first book", "second book" ] }
  9. { "_id" : ObjectId("575cd8302756c2ee1a25da72"), "name" : "user67", "age" : 67, "gender" : "m", "preferbooks" : [ "first book", "second book" ] }
  10. { "_id" : ObjectId("575cd8302756c2ee1a25da73"), "name" : "user68", "age" : 68, "gender" : "m", "preferbooks" : [ "first book", "second book" ] }
  11. { "_id" : ObjectId("575cd8302756c2ee1a25da74"), "name" : "user69", "age" : 69, "gender" : "m", "preferbooks" : [ "first book", "second book" ] }
  12. { "_id" : ObjectId("575cd8302756c2ee1a25da75"), "name" : "user70", "age" : 70, "gender" : "m", "preferbooks" : [ "first book", "second book" ] }

显示address属性存在的元素

> db.testcoll.insert({name: 'jack',age: 28, address: 'shenzhen'})

> db.testcoll.find({address: {$exists: true}})

{ "_id" : ObjectId("575cdbf1c1e73f4b26e83033"), "name" : "jack", "age" : 28, "address" : "shenzhen" }

> db.testcoll.find({address: {$exists: false}})





修改元素,默认只修改第一行

> db.testcoll.update({age: {$gt: 80}} , {$set: {gender: 'f'}})

满足条件的全部修改

> db.testcoll.update({age: {$gt: 80}}, {$set: {gender: 'f'}},{multi: true})

删除列

> db.testcoll.update({name: 'user81'},{$unset: {preferbooks: ''}})

> db.testcoll.find({age: {$gt: 80}})

{ "_id" : ObjectId("575cd8302756c2ee1a25da80"), "age" : 81, "gender" : "f", "name" : "user81" }

索引的操作:

显示索引

> db.testcoll.getIndexes()

[

{

"v" : 1,

"key" : {

"_id" : 1

},

"ns" : "itpart.testcoll",

"name" : "_id_"

}

]





> db.testcoll.getIndexes()

[

{

"v" : 1,

"key" : {

"_id" : 1

},

"ns" : "itpart.testcoll",

"name" : "_id_"

},

{

"v" : 1,

"key" : {

"name" : 1

},

"ns" : "itpart.testcoll",

"name" : "name_1"

}

]





设置索引的方法

> db.testcoll.ensureIndex({name:'hashed'})

> db.testcoll.getIndexes()

[

{

"v" : 1,

"key" : {

"_id" : 1

},

"ns" : "itpart.testcoll",

"name" : "_id_"

},

{

"v" : 1,

"key" : {

"name" : 1

},

"ns" : "itpart.testcoll",

"name" : "name_1"

},

{

"v" : 1,

"key" : {

"name" : "hashed"

},

"ns" : "itpart.testcoll",

"name" : "name_hashed"

}

]





删除

> db.testcoll.dropIndex('name_hashed')

{ "nIndexesWas" : 3, "ok" : 1 }

> db.testcoll.getIndexes()

[

{

"v" : 1,

"key" : {

"_id" : 1

},

"ns" : "itpart.testcoll",

"name" : "_id_"

},

{

"v" : 1,

"key" : {

"name" : 1

},

"ns" : "itpart.testcoll",

"name" : "name_1"

}

]





显示查找过程

> db.testcoll.find({name:'user19'})

{ "_id" : ObjectId("575cd8302756c2ee1a25da42"), "name" : "user19", "age" : 19, "gender" : "m", "preferbooks" : [  "first book",  "second book" ] }

> db.testcoll.find({name:'user19'}).explain()

{

"cursor" : "BtreeCursor name_1",

"isMultiKey" : false,

"n" : 1,

"nscannedObjects" : 1,

"nscanned" : 1,

"nscannedObjectsAllPlans" : 1,

"nscannedAllPlans" : 1,

"scanAndOrder" : false,

"indexOnly" : false,

"nYields" : 0,

"nChunkSkips" : 0,

"millis" : 0,

"indexBounds" : {

"name" : [

[

"user19",

"user19"

]

]

},

"server" : "node2.chinasoft.com:27017"

}

mongodb数据库安装及常见操作的更多相关文章

  1. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  2. mongoVUE破解与配置、Mongodb数据库安装

    一.mongoVUE 1.5.3破解: 1) 开始-运行-regedit-搜索:B1159E65-821C3-21C5-CE21-34A484D54444 2.) 然后把1,2,3项数值删除,然后重新 ...

  3. mongodb的安装与简单操作

    MongoDB中文社区:http://www.mongoing.com     数据库的使用场景 SQL(关系型数据库):MySQL.SQLServer  --->磁盘操作 1.高度事务性的场景 ...

  4. MongoDB数据库安装及配置环境终极教程(windows10系统)

    本文是笔者花时间踩坑踩生气了写出来的!转载请注明出处@http://www.cnblogs.com/tim100/!请尊重我的劳动成果!谢谢! 今天,给大家说说在windows10系统下MongoDB ...

  5. mongodb数据库安装

    mongodb的安装 1,下载安装包: http://www.runoob.com/mongodb/mongodb-window-install.html 2,安装至:    D:\MongoDB,将 ...

  6. MongoDB数据库安装及配置环境(windows10系统)

    windows10系统下MongoDB的安装及环境配置: MongoDB的安装 下载地址: https://www.mongodb.com/download-center (这是windows10环境 ...

  7. 第十二节:Web爬虫之MongoDB数据库安装与数据存储

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...

  8. MongoDB 数据库安装

    首先在官网上下载数据库:官网上提供了两种形式的数据库,一种是免安装版的,一种是安装版的.这点跟apache的tomcat类似,安装版的有可视化的界面对服务进行启动和关闭,可是还是比較喜欢免安装的.不解 ...

  9. MongoDB的安装及CURD操作

    MongoDB的下载地址:http://www.mongodb.org/downloads MongoDB有32bit和64bit两个版本,32bit只能存放2GB数据.我们选择64bit版进行下载. ...

随机推荐

  1. Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)

    Luogu 1941 [NOIP2014]飞扬的小鸟 (动态规划) Description Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度 ...

  2. CF520E Pluses everywhere

    题目大意 给定一个 n 位的十进制数,可以在数字之间加 k 个' + ',得到一个式子,求每种方案的这个式子的和 分析: 容易想到将式子的和转化为每个数字的贡献值之和. 设数组a为:a(n-1),a( ...

  3. A1032. Sharing

    To store English words, one method is to use linked lists and store a word letter by letter. To save ...

  4. Java: |(或运算) 与 多选判断

    今天需要在程序中做一个多选判断,突然想起以前经常遇到的 x |= y | z; 这样的,我也明白这个是多选的用意,但为什么能达到我们希望的多选操作,我还真的没去研究过. 今天早上,百度了一下,搜索到了 ...

  5. 斯坦福大学公开课机器学习:监督学习在行人检测的应用(supervised learning for pedestrian detection)

    对于下图,左边是行人,作为阳性例子,赋值y=1,右边是景物,作为阴性例子,赋值y=0; 步长概念: 如下图所示,步长表示绿色框框移动的距离,有时候也称为滑动参数stride,如果一次移动一个像素,则称 ...

  6. hibernate中复合主键的使用

    转: https://blog.csdn.net/shutingwang/article/details/6627730 https://blog.csdn.net/lmy86263/article/ ...

  7. My thoughts after NOIP 2018(1)

    联赛就这样结束了. 感觉真是奇怪啊.以前看重的东西,像是忽然扔下的包袱,一下子轻了. 而我一直在逃避的,不愿直面的东西,果然终于还是要再次面对了啊. 文化课百废待兴,\(noip\)的最终结果依然未知 ...

  8. Python基础【day01】:初始模块(五)

    本节内容 1.标准库 1.sys 2.os 2.第三方库 1.for mac 2.for linux Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的P ...

  9. 初探 opencv-python

    一.openCV介绍 Open Source Computer Vision Library.OpenCV于1999年由Intel建立,如今由Willow Garage提供支持.OpenCV是一个基于 ...

  10. JavaSE学习总结(五)——封装,继承,多态很简单

    java面向对象的三大特性是:封装.继承与多态,是面向对象编程的核心. 一.封装 简单说封装就是将同一类事物的特性与功能包装在一起,对外暴露调用的接口. 封装:封装也称信息隐藏,是指利用抽象数据类型把 ...