• MongoDB基础操作


    一、数据库操作

    # 1.显示数据库
    show dbs
    show databases
    # 2.创建数据库或使用数据库
    use db   # 注意: db 存储值后,才会在show dbs命令下显示
    # 3.查看当前数据库
    db
    # 4.删除当前的数据库
    db.dropDatabase()

    二、集合操作

    注意:一般不手动创建集合,向不存在的集合第一次加入数据时,集合会被自动创建出来

    # 1.创建集合
    db.createCollection('集合名称')
    db.createCollection('集合名称', {capped: true, size: 10})
    参数capped: 默认值为false表示不设置上下,值为true表示设置上限
    参数size: 当capped为ture时,需要指定此参数,表示上限大小,当文档达到上限时,会覆盖之前的数据,单位为字节
    # 2.查看集合
    show collections
    # 3.删除集合
    db.集合名称.drop()

    三、数据类型

    ObjectID: 文档ID
    String: 字符串,必须是utf-8
    Boolean: 存储一个布尔值, true false
    Integer: 整数可以是32或64取决于服务器
    Double: 浮点型
    Arrays: 数组或列表, 多个值存储到一个键
    Object: 用于嵌入式的文档, 即一个值为一个文档
    Null: 存储Null值
    Timestamp: 时间戳,表示从1970-1-1到现在的总秒数
    Date: 存储当前的日期或时间的UNIX的时间格式

    注意:

    1.创建日期的格式如下
    new Date('YYYY-MM-DD')
    2.ObjectID
    每个文档都有一个_id属性, 保存每个文档的唯一性(相当于MySQL的主键)
    可以自己去设置_id插入文档,如果没有提供,那么MongoDB为每个文档提供一个独特的_id,类型为ObjectID()
    
    ObjectID是一个12字节的十六进制数
        前4个字节为当前的时间戳
        接下来3个字节的机器ID
        接下来2个字节中MongoDB的服务进程id
        最后3个字节是简单的增量值

    好吧,现在关于ObjectID的字节数量,不确定

    四、插入文档

    db.集合名称.insert(document)
    # 文档自动生成_id
    db.stu.insert({name: 'tom', age: '24'})
    # 设置_id
    db.stu.insert({_id: '20191122', name: 'bob', age: 12})
    # 注意:插入文档时,如果不指定_id参数。MongBD会为文档分配一个唯一的ObjectID

    五、保存文档

    db.集合名称.save(document)
    # 如果文档_id存在,则修改文档,如果不存在,则插入文档
    # 实例
    db.stu.save({"_id" : ObjectId("5dd765df2fe79d143d09716d"), "name" : "tom", "age" : "10"})

    六、查询文档(简单)

    db.stu.find()
    # 复杂的查询,稍后更新

    七、更新文档

    db.集合名称.update(<query>, <update>, {multi: <Boolean>})
    参数query: 查询条件
    参数update: 更新操作符
    参数multi: 可选,默认false, 表示只更新找到的第一条记录,值为true表示把满足条件的文档全部更新
    
    db.集合名称.update({name: 'tom'}, {name: 'hr'})  # 替换整条记录
    db.stu.update({name: 'tom'}, {$set: {name: 'hehe'}})  # 更新一条记录
    db.stu.update({age: 24}, {$set: {name: 'hihi'}}, {multi: true})     # 全部更新

    八、删除文档

    db.集合名称.remove(<query>, {justOne: <Boolean>})
    参数query: 删除的文档的条件
    参数justOne: 可选, 如果设为true或1, 则只删除一条,默认为false,表示删除多条
    # 例子
    db.集合名称.remove({name: 'tom'})  # 删除name值为tom的所有文档
    db.集合名称.remove({name: 'tom'}, {justOne: true}) # 删除一条记录

     注意:

    save()和update()的区别
      save()可以修改字段名称或添加数据
      update()修改或添加数据

    练习数据

    db.stu.insert({name: '郭靖', hometown: '蒙古', age: 20, gender: true})
    db.stu.insert({name: '黄蓉', hometown: '桃花岛', age: 18, gender: false})
    db.stu.insert({name: '华筝', hometown: '蒙古', age: 18, gender: false})
    db.stu.insert({name: '黄药师', hometown: '桃花岛', age: 40, gender: true})
    db.stu.insert({name: '段誉', hometown: '大理', age: 16, gender: true})
    db.stu.insert({name: '段王爷', hometown: '大理', age: 45, gender: true})
    db.stu.insert({name: '洪七公', hometown: '华山', age: 40, gender: true})
  • 相关阅读:
    极大极小定理
    sklearn.datasets
    论文解读《The Emerging Field of Signal Processing on Graphs》
    谱聚类原理总结
    论文解读(GALA)《Symmetric Graph Convolutional Autoencoder for Unsupervised Graph Representation Learning》
    collections.Counter()
    论文解读第三代GCN《SemiSupervised Classification with Graph Convolutional Networks》
    参考:从图(Graph)到图卷积(Graph Convolution)
    论文解读(DFCN)《Deep Fusion Clustering Network》
    chapter6——KNN实现
  • 原文地址:https://www.cnblogs.com/wt7018/p/11911447.html
Copyright © 2020-2023  润新知