阅读 250

mongodb

安装

  1. 下载安装包安装
  2. 全局path变量中加入mongodb的bin目录
  3. 在根目录创建c:\data目录,在data中创建db目录
  4. 命令行运行
mongod.exe --dbpath c:\data\db
复制代码

启动服务 5. 运行bin目录中的mongo.exe打开mongodb的shell命令窗口,接下来就可以用命令行操作数据库了

命令行

  1. 创建数据库
use DATABASE_NAME//切换到某个数据库
db//显示当前数据库名
show dbs//显示所有数据库
复制代码
  1. 删除数据库
//删除数据库
db.dropDatabase()
//删除集合
db.collection.drop()
复制代码
  1. 插入文档
db.COLLECTION_NAME.insert(document)//COLLECTION_NAME不存在会自动创建
//document可以是变量

//插入文档也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
复制代码
  1. 更新文档
//query:查询条件,相当于where
//update:update对象
//upsert:可选,默认false,意思是如果不存在update的记录,是否插入
//muti:可选,默认false,是更新第一个还是所有
//writeConcern:可选,抛出异常的级别 
db.collection.update(
    <query>,
    <update>,
    {
        upsert:<boolean>,
        multi:<bollean>,
        writeConcern:<document>
    }
)
//save
db.collection.save(
    <document>,
    {
      writeConcern:<document>
    }
)
复制代码
  1. 删除文档
db.collection.remove(
    <query>,
    {
        justOne:<boolean>,//默认为false,删除所有
        writeConcern:<document>
    }
)
复制代码
  1. 查询文档
db.collection.find(
    query,
    projection//可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
)
//以格式化的方式来显示所有文档
db.collection.find().pretty()
//只显示第一个
db.collection.findOne()
//$or[{},{},...]:或
复制代码
  1. 条件操作符
//$lt:小于
//$lte:小于或等于
//$gt:大于
//$gte:大于或等于
//$ne:不等于
复制代码
  1. $type操作符
类型数字
Double1
String2
Object3
Array4
Binary data5
Undefined(已废弃)6
Object id7
Boolean8
Date9
Null10
Regilar Expression11
JavaScript13
Symbol14
JavaScript(with scope)15
32-bit integer16
Timestamp17
64-bit integer18
Min key255
Max key integer127
//查找title类型为String的数据
db.collection.find({"title" : {$type : 2}})
复制代码
  1. limit和skip
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
复制代码
  1. sort
//1是升序,-1是降序
db.COLLECTION_NAME.find().sort({KEY:1})
复制代码
  1. 索引
//Key 值为要创建的索引字段,1为指定按升序创建索引
db.COLLECTION_NAME.ensureIndex({KEY:1})
复制代码
  1. 聚合
db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
复制代码

高级使用

  1. 复制数据库
db.source.find().forEach(fucntion(item){ db.target.insert(item) })

db.op_reply.find().forEach(function(item){ 
db.op_reply.update({_id:item._id}l,{$set:{messages:}})
复制代码

}) 2. 改变messages结构

db.op_reply.find().forEach(function(item){
 	item.messages.forEach(function(it,index){
        item.messages[index]={index:index,content:it}
    })
    db.op_reply.save(item)
})
//index从0开始
db.op_reply.find().forEach(function(item){
item.messages.forEach(function(it,index){
    item.messages[index]={index:index,content:it.content}
    })
    db.op_reply.save(item)
})
复制代码
文章分类
后端
文章标签