mongodb基本使用

一.linux启动关闭mongodb
mongodb启动命令:
mongod --master --dbpath /var/lib/mongo --logpath /var/log/mongo/mongod.log --fork --logappend


启动:/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongodb.log --logappend  --port=27017 --fork
关闭:ps  -ef |grep mongodb 找到你要查找的进程号
      kill -9  pid    

1. 以守护进程方式启动
    进入bin目录
    ./mongod
2. 打开客户端
    ./mongo
3. 关闭服务
   客户端下
   db.shutdownServer()
4. 退出客户端
   exit
  二.操作


 1.> mongod --dbpath D:\mongodb\data  指定数据存储路径
 2.>mongo 默认连接
 3.>db.test.save( { a: 1 } ) 向test插入数据
4.>db.test.find()查询test数据
{ "_id" : ObjectId(5879b0f65a56a454), "a" : 1 }
 
创建数据库


如果想创建一个数据库名称为 <mydb>,那么 use DATABASE 语句应该如下:
>use mydb
switched to db mydb
要检查当前选择的数据库使用命令 db
>db
mydb
如果想查询数据库列表,那么使用命令 show dbs.
>show dbslocal     0.78125GB
test      0.23012GB
 
删除数据库


MongoDB db.dropDatabase() 命令用于删除现有的数据库。
dropDatabase()指令的基本语法如下:
db.dropDatabase()
这将删除选定的数据库。如果没有选择任何数据库,那么它会删除默认的“test”数据库
如果想删除新的数据库 <mydb>,那么 dropDatabase() 命令将如下所示:
>use mydb
switched to db mydb>db.dropDatabase()>{ "dropped" : "mydb", "ok" : 1 }>
 
创建集合


MongoDB 的 db.createCollection(name, options) 用于创建集合。在命令中, name 是要创建集合的名称。 Options 是一个文档,用于指定集合的配置
参数
类型
描述
Name
String
要创建的集合的名称
Options
Document
(可选)指定有关内存大小和索引选项
选项参数是可选的,所以需要指定集合的唯一名字。
createCollection()方法的基本语法如下
>use test
switched to db test
>db.createCollection("mycollection"){ "ok" : 1 }
可以通过使用 show collections 命令来检查创建的集合
>show collections
mycollection
system.indexes
选项说明
字段
类型
描述
capped
Boolean
(可选)如果为true,它启用上限集合。上限集合是一个固定大小的集合,当它达到其最大尺寸会自动覆盖最老的条目。 如果指定true,则还需要指定参数的大小。
autoIndexID
Boolean
(可选)如果为true,自动创建索引_id字段。默认的值是false.
size
number
(可选)指定的上限集合字节的最大尺寸。如果capped是true,那么还需要指定这个字段。
max
number
(可选)指定上限集合允许的最大文件数。
尽管插入文档,MongoDB首先检查字段集合的上限大小,那么它会检查最大字段。
>db.createCollection("mycol", { capped: true, autoIndexID: true, size: 6142800, max: 10000 } ){ "ok" : 1 }>
在MongoDB中并不需要创建集合。 当插入一些文档MongoDB 会自动创建集合。
>db.yiibai.insert({"name" : "yiibai"})>show collections
mycol
mycollection
system.indexes
yiibai>
MongoDB 的 db.collection.drop() 用于从数据库中删除集合。
drop() 命令的基本语法如下
db.COLLECTION_NAME.drop()
下面给出的例子将删除给定名称的集合:mycollection
>use mydb

switched to db mydb>db.mycollection.drop()true>


插入文档

将数据插入到MongoDB集合,需要使用MongoDB的 insert()方法。
insert()命令的基本语法如下:
>db.COLLECTION_NAME.insert(document)
>db.mycol.insert({
   _id: ObjectId(7df78ad8902c),
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'yiibai tutorials',
   url: 'http://www.yiibai.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100})
这里 mycol是我们的集合名称,它是在之前的教程中创建。如果集合不存在于数据库中,那么MongoDB创建此集合,然后插入文档进去。
在如果我们不指定_id参数插入的文档,那么MongoDB 将为文档分配一个唯一的ObjectId。
_id 是12个字节十六进制数在一个集合的每个文档是唯一的。12个字节被划分如下:
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
如果要以单个查询插入多个文档,可以通过文档 insert()命令的数组方式。
如果要以单个查询插入多个文档,可以通过文档 insert()命令的数组方式。
>db.post.insert([{
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'yiibai tutorials',
   url: 'http://www.yiibai.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100},{
   title: 'NoSQL Database', 
   description: 'NoSQL database doesn't have tables',
   by: 'yiibaitutorials',
   url: 'http://www.yiibai.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 20, 
   comments: [
      {
         user:'user1',
         message: 'My first comment',
         dateCreated: new Date(2013,11,10,2,35),
         like: 0 
      }
   ]}])
 
查询文档


要从集合查询MongoDB数据,需要使用MongoDB的find()方法。
find()方法的基本语法如下
>db.COLLECTION_NAME.find()
find() 方法将在非结构化的方式显示所有的文件。 如果显示结果是格式化的,那么可以用pretty()方法。
>db.mycol.find().pretty()
例子
>db.mycol.find().pretty(){
   "_id": ObjectId(7df78ad8902c),
   "title": "MongoDB Overview", 
   "description": "MongoDB is no sql database",
   "by": "yiibai tutorials",
   "url": "http://www.yiibai.com",
   "tags": ["mongodb", "database", "NoSQL"],
   "likes": "100"}>
除了find()方法还有findOne()方法,仅返回一个文档。
RDBMS Where子句等效于MongoDB
查询文档在一些条件的基础上,可以使用下面的操作
操作
语法
示例
RDBMS等效语句
Equality
{<key>:<value>}
db.mycol.find({"by":"yiibai tutorials"}).pretty()
where by = 'yiibai tutorials'
Less Than
{<key>:{$lt:<value>}}
db.mycol.find({"likes":{$lt:50}}).pretty()
where likes < 50
Less Than Equals
{<key>:{$lte:<value>}}
db.mycol.find({"likes":{$lte:50}}).pretty()
where likes <= 50
Greater Than
{<key>:{$gt:<value>}}
db.mycol.find({"likes":{$gt:50}}).pretty()
where likes > 50
Greater Than Equals
{<key>:{$gte:<value>}}
db.mycol.find({"likes":{$gte:50}}).pretty()
where likes >= 50
Not Equals
{<key>:{$ne:<value>}}
db.mycol.find({"likes":{$ne:50}}).pretty()
where likes != 50
AND 在 MongoDB
语法
在 find()方法,如果您传递多个键通过","将它们分开,那么MongoDB对待它就如AND条件一样。基本语法如下所示:
>db.mycol.find({key1:value1, key2:value2}).pretty()
例子
下面给出的例子将显示所有教程含“yiibai tutorials”和其标题是“MongoDB Overview”
>db.mycol.find({"by":"yiibai tutorials","title": "MongoDB Overview"}).pretty(){
   "_id": ObjectId(7df78ad8902c),
   "title": "MongoDB Overview", 
   "description": "MongoDB is no sql database",
   "by": "yiibai tutorials",
   "url": "http://www.yiibai.com",
   "tags": ["mongodb", "database", "NoSQL"],
   "likes": "100"}>
对于上面给出的例子相当于where子句:' where by='yiibai tutorials' AND title='MongoDB Overview' '。可以传递任何数目的键-值对在find子句。
OR 在 MongoDB
语法
要查询基于OR条件的文件,需要使用$or关键字。OR的基本语法如下所示:
>db.mycol.find(
   {
      $or: [
     {key1: value1}, {key2:value2}
      ]
   }).pretty()
例子
下面给出的例子将显示所有撰写含有 'yiibai tutorials'或是标题为 'MongoDB Overview'的教程
>db.mycol.find({$or:[{"by":"tutorials point"},{"title": "MongoDB Overview"}]}).pretty(){
   "_id": ObjectId(7df78ad8902c),
   "title": "MongoDB Overview", 
   "description": "MongoDB is no sql database",
   "by": "yiibai tutorials",
   "url": "http://www.yiibai.com",
   "tags": ["mongodb", "database", "NoSQL"],
   "likes": "100"}>
使用 AND 和 OR 在一起
例子
下面给出的例子显示有喜欢数大于100的文档,其标题要么是 'MongoDB Overview'或 'yiibai tutorials'.等效于SQL的where子句:'where likes>10 AND (by = 'yiibai tutorials' OR title = 'MongoDB Overview')'
>db.mycol.find("likes": {$gt:10}, $or: [{"by": "yiibai tutorials"}, {"title": "MongoDB Overview"}] }).pretty(){
   "_id": ObjectId(7df78ad8902c),
   "title": "MongoDB Overview", 
   "description": "MongoDB is no sql database",
   "by": "yiibai tutorials",
   "url": "http://www.yiibai.com",
   "tags": ["mongodb", "database", "NoSQL"],
   "likes": "100"}>
 
 
 
更新文档


MongoDB的update()和save()方法用于更新文档到一个集合。 update()方法将现有的文档中的值更新,而save()方法使用传递到save()方法的文档替换现有的文档。
MongoDB Update() 方法
语法
update()方法的基本语法如下
>db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)
例子
考虑mycol集合有如下数据。
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Yiibai Overview"}
下面的例子将设置其标题“MongoDB Overview”的文件为新标题为“New MongoDB Tutorial”
>db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}})>db.mycol.find(){ "_id" : ObjectId(5983548781331adf45ec5), "title":"New MongoDB Tutorial"}{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Tutorial Overview"}>
默认情况下,MongoDB将只更新单一文件,更新多,需要一个参数'multi' 设置为true。
>db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}},{multi:true})
MongoDB Save() 方法
save() 方法取代,通过新文档到save()方法
语法
mongodb 的 save()方法如下所示的基本语法:
>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
例子
下面的例子将替换该文件_id '5983548781331adf45ec7'
>db.mycol.save(
   {
      "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Yiibai New Topic", "by":"Yiibai Yiibai"

   })>db.mycol.find(){ "_id" : ObjectId(5983548781331adf45ec5), "title":"Yiibai Yiibai New Topic", "by":"Yiibai Yiibai"}{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Yiibai Overview"}>


删除文档


MongoDB 的 remove()方法用于从集合中删除文档。remove()方法接受两个参数。一个是标准缺失,第二是justOne标志
 
deletion criteria : 根据文件(可选)删除条件将被删除。
 
 
justOne : (可选)如果设置为true或1,然后取出只有一个文档。
 
语法
remove()方法的基本语法如下
>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)
例子
考虑mycol集合有如下数据。
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Yiibai Overview"}
下面的例子将删除所有的文件,其标题为 'MongoDB Overview'
>db.mycol.remove({'title':'MongoDB Overview'})>db.mycol.find(){ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Toturials Overview"}>
只删除一个
如果有多个记录,并要删除仅第一条记录,然后在 remove()方法设置参数justOne 。
>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
删除所有文件
如果没有指定删除条件,则MongoDB将从集合中删除整个文件。这相当于SQL的truncate 命令。

>db.mycol.remove()>db.mycol.find()>


限制文档


MongoDB Limit() 方法
要在MongoDB中限制记录,需要使用limit()方法。 limit() 方法接受一个数字类型的参数,这是要显示的文档数量。
语法
limit()方法的基本语法如下
>db.COLLECTION_NAME.find().limit(NUMBER)
例子
考虑集合 myycol有下列数据
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Yiibai Overview"}
下面的例子将只显示2个文档,在查询文档时。
>db.mycol.find({},{"title":1,_id:0}).limit(2){"title":"MongoDB Overview"}{"title":"NoSQL Overview"}>
文档排序


要排序MongoDB中的文档,需要使用sort()方法。 sort() 方法接受一个包含字段列表以及排序顺序的文档。 要使用1和-1指定排序顺序。1用于升序,而-1是用于降序。
语法
sort()方法的基本语法如下
>db.COLLECTION_NAME.find().sort({KEY:1})
例子
考虑集合 myycol有如下数据
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Yiibai Overview"}
下面的例子将显示的文件排序按标题降序排序。
>db.mycol.find({},{"title":1,_id:0}).sort({"title":-1}){"title":"Yiibai Yiibai Overview"}{"title":"NoSQL Overview"}{"title":"MongoDB Overview"}>


如果需要java项目操作demo的可以留言
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值