基础

作者: 汤汤汤汤汤雪林 | 来源:发表于2017-02-17 12:04 被阅读0次

关键词

database           数据库
collection           数据库表/集合
document          数据记录行/文档
field                   数据字段/域
index                 索引
primary              主键,MongoDB将_id作为主键

MongoDB - 连接

mongod --fork --logpath://log_path --datapath://data_path

MongoDB - 操作

数据库操作:

use db_name                 #切换到da_name数据库,不存在则创建数据库
show dbs                    #查看所有数据库(没有数据的库除外)
db.dropDatabase()           #删除当前数据库
db.collection.drop()        #删除集合
db.collection.remove({})    #清空集合

文档(数据)操作:

db_name.insert({'name':'value'})     #插入数据
db.collection.insert(document)       #插入文档

db.collection.update(
    <query>,  #查询条件
    <update>,  #update对象和操作符
    {
        upsert: <boolean>,        #可选,如果记录不存在是否插入新对象,默认False
        multi: <boolean>,         #可选,默认只更新找到的第一条记录,默认为False
        writeConcern: <document>  #可选,抛出异常的级别
    }
)

db.collection.save(
    <document>,                   #用来替换的文档数据
    {
        writeConcern:<document>   #可选,抛出异常的级别
    }
)

db.collection.remove(
    <query>,    #删除条件
    {
        <justOne>,               #可选,如果设置为True或1,则只删除1条
        <writeConcern: <document> #可选,抛出异常的级别
   }
)

db.collection.find()              #非格式化显示所有数据
db.collection.find().pretty()     #格式化显示所有数据
db.collection.findOne()           #只查询一条数据

查询条件语句 query

db.collection.find({'by':'value'}).pretty()           #by "= value"
db.collection.find({'likes': {$lt: 50}}).pretty()     # likes < 50 
db.collection.find({'likes': {$lte: 50}}).pretty()    # likes <= 50
db.collection.find({'likes': {$gt: 50}}).pretty()     # likes > 50
db.collection.find({'likes': {$gte: 50}}).pretty()    # likes >= 50
db.collection.find({'likes': {$ne: 50}}).pretty()     # likes != 50

操作符 $

db.collection.find({'by':'value'}, {'like': {$lt:50}}).pretty()  #find可以传入多个参数

db.collection.find(
    {
        $or:[                    # $or 操作符,满足后续任一条件则输出
            {key1: value1}, {key2: value2}
        ]
    }
).pretty()

db.col.find({"likes": {$gt:50}, $or: [{"by": "by1"},{"title": "title1"}]}).pretty()
# and 与 or 联用,组合查询

db.collection.find({'title' : {$type: 2}})    #type操作符,判断指定属性类型,较少用

db.collection.find().limit(num)    #limit操作符,指定输出数据数量
db.collection.find().skip(num)     #skip操作符,跳过指定数量后查询

db.collection.find().sort(1/-1)    #sort排序,1为升序,-1降序

索引 index

添加索引可以有效的加快指定数据的查询速度

db.collection.ensureIndex({key: 1})           #创建索引

聚合 aggregate

主要用于处理数据,统计、求和、平均值等

db.collection.aggregate(AGGREGATE_OPERTION)  # 基本格式

db.collection.aggregate(
    [
        {
            $group :         #给查询后的数据分组标识
                {
                    _id : "$user",    #格式化输出,user
                    num_tutorial : {$sum : 1}    #计算总和
                }
         }
    ]
)
$sum: 计算综合
$avg: 计算平均值
$min: 获取集合的最小值
$max: 获取集合的最大值
$push: 在结果文档中插入值到一个数组
$addToSet: 在结果文档中插入值到一个数组中,不创建副本
$first: 根据排序获取第一个文档数据
$last: 根据排序获取最后一个文档数据

相关文章

  • 机械设备安装技术

    设备基础种类及应用 垫层基础允许产生沉降:大型储罐 浅基础扩展基础联合基础:轧机独立基础 深基础桩基础:适用于需要...

  • 基础,基础,基础

    如果有人现在问我,JAVA该怎么学,我会告诉他不要急于求成,少看视频,多练,多思考。但说到这里有人可能会反...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • 零基础学画画从入门到放弃

    零基础应该怎么学画画?零基础那就从基础开始学啊!基础是什么?造型基础和色彩基础。 造型基础就是用点线面组成起码能让...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • 基础基础还是基础

    这次去面试,还是被基础给打趴下了。 对于PHP7的新特性没有了解。 对于TP的新特性没有了解。 再一个就是独立完成...

  • 零基础学UI设计需要美术基础吗?

    零基础学UI设计需要美术基础吗?零基础学UI设计需要美术基础吗?零基础学UI设计需要美术基础吗?零基础学UI设计需...

  • 基础基础!

    人生中第一个自主设计的实验方案终于得到认可^O^在设计方案过程中认识到基础知识以及细心的重要性,还有半个学期可以努...

  • Go语言基础语法--注释、基础结构2

    章节 GO语言基础语法--注释、基础结构(重要) 1.GO语言基础语法---注释、基础结构 基础结构注意事项 源文...

网友评论

      本文标题:基础

      本文链接:https://www.haomeiwen.com/subject/lelhwttx.html