您的位置:首页 > 数据库 > Mongodb

mongodb

2015-11-06 14:15 543 查看
启动服务:mongod--dbpath/data/db

连接:mongo

1、useDATABASE_NAME用于创建数据库。该命令将创建一个新的数据库,如果它不存在,否则将返回现有的数据库。

2、要检查当前选择的数据库使用命令db

3、如果想检查数据库列表,使用命令showdbs

4、创建的数据库mydb列表中是不存在的。要显示的数据库,需要把它插入至少一个文件。

5、db.dropDatabase()命令是用来删除一个现有的数据库

6、db.createCollection(name,options)是用来创建集合

  options可选,内容可以如下

cappedBoolean(可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定true,则需要也指定尺寸参数。
autoIndexIDBoolean(可选)如果为true,自动创建索引_id字段的默认值是false。
sizenumber(可选)指定最大大小字节封顶集合。如果封顶如果是true,那么你还需要指定这个字段。
maxnumber(可选)指定封顶集合允许在文件的最大数量。
  完整实例:db.createCollection("mycol",{capped:true,autoIndexID:true,size:6142800,max:10000})

7、可以检查通过使用创建的集合命令showcollections

8、db.collectionName.drop()是用来从数据库中删除一个集合

9、db.collectionName.insert(document)

  例子:

db.mycol.insert({

_id:ObjectId(7df78ad8902c),
title:'MongoDBOverview',
description:'MongoDBisnosqldatabase',
by:'tutorialspoint',
url:'http://www.yiibai.com',
tags:['mongodb','database','NoSQL'],
likes:100
})

10、db.collectionName.find()

11、db.collectionName.find().pretty()  

  例子:

  db.mycol.find("likes":{$gt:10},$or:[{"by":"yiibai"},{"title":"MongoDBOverview"}]}).pretty()

  等价于sql的wherelikes>10AND(by='yiibai'ORtitle='MongoDBOverview')

12、db.collectionName.update(SELECTIOIN_CRITERIA,UPDATED_DATA)

  例:db.mycol.update({'title':'MongoDBOverview'},{$set:{'title':'NewMongoDBTutorial'}})

13、db.collectionName.save({_id:ObjectId(),NEW_DATA})

  例:db.mycol.save({"_id":ObjectId(5983548781331adf45ec7),"title":"YiibaiNewTopic","by":"Yiibai"})

14、db.collectionName.remove(DELLETION_CRITTERIA)

15、如果有多个记录且要删除的只有第一条记录db.collectionName.remove(DELETION_CRITERIA,1)

16、MongoDB$gt$lt$lte$gte

  db.collectionName.find({likes:{$gte:100}})类似于sql语句Select*fromcolwherelikes>=100;

17、MongoDB$type操作符

  如果想获取集合中title为String的数据,你可以使用以下命令db.collectionName.find({"title":{$type:2}})

18、limit方法db.collectionName.find().limit(number)

19、skip方法db.collectionName.find().limit(number).skip(number)

20、sort方法db.collectionName.find().sort({key:1})1为升序-1为降序

21、索引

  db.collectionName.ensureIndex({key:1})key值为你要创建的索引字段,1为指定按升序创建索引

22、MongoDB聚合aggregate主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的count(*)

  db.collectionName.aggregate(AGGREGATE_OPERATION)

  $sum$avg$min$max$push$addToSet$first$last

23、管道

  $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档

  $match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作

  $limit:用来限制MongoDB聚合管道返回的文档数

  $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档

  $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值

  $group:将集合中的文档分组,可用于统计结果

  $sort:将输入文档排序后输出

  $geoNear:输出接近某一地理位置的有序文档

db.article.aggregate(
{$project:{
title:1,
author:1,
}}
);
24、MongoDB副本
  1、关闭正在运行的MongoDB服务器mongod--port"PORT"--dbpath"YOUR_DB_DATA_PATH"--replSet"REPLICA_SET_INSTANCE_NAME"
  2、rs.add(HOST_NAME:PORT)
  MongoDB中你只能通过主节点将Mongo服务添加到副本集中,判断当前运行的Mongo服务是否为主节点可以使用命令db.isMaster()。MongoDB的副本集与我们常见的主从有所不同,主从在主机宕机后所有服务将停止,而副本集在主机宕机后,副本会接管主节点成为主节点,不会出现宕机的情况
25、MongoDB分片
26、MongoDB数据备份mongodump-hdbhost-ddbname-odbdirectory
27、MongoDB数据恢复mongorestore-hdbhost-ddbname--directoryperdbdbdirectory
28、MongoDB监控mongostat

29、MongoDB关系一对一一对多多对一多对多
  嵌入式


{"_id":ObjectId("52ffc33cd85242f436000001"),
"contact":"987654321",
"dob":"01-01-1991",
"name":"TomBenzamin",
"address":[
{
"building":"22A,IndianaApt",
"pincode":123456,
"city":"LosAngeles",
"state":"California"
},
{
"building":"170A,AcropolisApt",
"pincode":456789,
"city":"Chicago",
"state":"Illinois"
}]
}


引用式

{
"_id":ObjectId("52ffc33cd85242f436000001"),
"contact":"987654321",
"dob":"01-01-1991",
"name":"TomBenzamin",
"address_ids":[
ObjectId("52ffc4a5d85242602e000000"),
ObjectId("52ffc4a5d85242602e000001")
]
}


30、

未完待续
http://www.runoob.com/mongodb/mongodb-tutorial.html

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: