zoukankan      html  css  js  c++  java
  • Mongodb

    MongoDB

    使用前的小插曲

    • 启动mongodb
    • mongod --dapath '数据库目录'
    • 默认端口 27017

    基本操作

    • show dbs 查看所有存在磁盘上的数据库
    • show tables 查看当前数据库存在磁盘上的数据表
    • use 数据库 切换数据库 如果没有就创建
    • 数据库.表名 创建表

    数据:

    MongoDB:
    [
    {
    "id":1,
    "name":"jwb",
    "age":73,
    "hobby":["ywb","lwb"],
    "duixiang":{
    "id":2,
    "name":"ywb",
    "age":84
    }
    },

    ​ {

    		"id":2,
    		"name":"ywb",
    		"age":84,
    		"duixiang":{
    			"id":1,
    			"name":"jwb",
    			"age":73,
    		}
    	}
    ]
    

    数据增删改查

    增加 insert

    db.user.insert({'id':1, 'name':'alex','age':18})

    官方推荐写法

    db.user.insertOne({})

    db.user.insertMany({})

    查看 find

    db.user.find()

    db.user.findOne({})

    db.user.find({'id':2, 'age':23}) 并列条件

    $or : db.user.find({ $or:[{'id':2, },{'age':23}}) 或 满足一个即可

    同一个字段的 或 条件

    $in : db.user.find({age:{$in:[18,19,20]}})

    子集检索

    db.user.find({ what :{$in: [ 1, 2]}})

    $all : 满足所有条件

    db.user.find({what: {$all:[a,b,c]}})

    更新 update 修改器 $set

    db.user.update({'age':23},{$set:{'username':'wusir'}})

    官方推荐写法:
    db.user.updateOne({'name':"alex"},{$set:'{'age':22}'})

    db.user.updateMany({'name':"alex"},{$set:'{'age':22}'})

    删除 remove/delete

    db.user.remove({'age': 50})

    官方推荐写法:
    db.user.deleteOne({'name':'alex'})

    db.user.deleteMany({'name':'alex'})

    $修改器:

    $set : 暴力修改

    $unset : 暴力删除字段

    db.user.updateOne({'name':'alex},{$unset:{'hobby':1}})

    $inc : 引用增加 在原有的数值上增加 正数增加,负数减少

    db.user.updateMany({},{$inc:{age:1}})

    array修改器:

    $push 增加元素 : db.user.updateOne({'name':'alex'},{$push:{'hobby':'烫头'}})

    $pull 删除元素 :db.user.updateOne({'name':'alex'},{$pop :{'hobby':抽烟}})

    $ pushAll 迭代增加 : db.user.update({'name'.'alex'},{$pushAll:{'hobby':[1,2,3]}})

    $pop 删除最后一条数据/第一条:

    最后一条 db.user.updateOne({'name':'alex'},{$pop:{'hobby':1}})

    第一条 db.user.updateOne({'name':'alex'},{$pop:{'hobby':-1}})

    $ 字符

    ['hj','tt',1,2] {'hobby':'hj'} hj是hobby列表中的第0个元素

    就把0这个数据放在了$ 中

    db.user.updateMany({'hobby':'hj'},{$set:{'hobby.$':'喝酒'}})

    存储符合条件的元素下标索引

    object操作

    db.user.updateOne({"kecheng.name":"python"},{$set:{"kecheng.price":19800}})
    db.user.updateOne({"kecheng.name":"python"},{$inc:{"kecheng.price":500}})

    Array中的Object

    db.user.updateOne({"hobby.age":84},{$set:{"hobby.$.age":73}})

    Object中的Array

    db.user.updateOne({"kecheng.class":15},{$set:{"kecheng.class.$":20}})

    数据类型:

    ObjectID :Documents 自生成的 _id

    String: 字符串,必须是utf-8

    Boolean:布尔值,true 或者false (这里有坑哦~在我们大##Python中 True False 首字母大写)

    Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)

    Double:浮点数 (没有float类型,所有小数都是Double)

    Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)

    Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典

    N#ull:空数据类型 , 一个特殊的概念,None Null

    Timestamp:时间戳

    Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)

    MongoDB中的跳过选取排序:
    skip(5) 跳过五条数据
    limit(5) 只显示五条数据
    分页 skip(5).limit(5)

    sort({age:1}) 正序
    sort({age:-1}) 倒序

    如果三个关键字同时出现 1.sort 2.skip 3.limit

    与顺序无关

    pymongo:
    find_one
    insert_one
    insert_many
    update_one
    update_many
    delete_one
    delete_many

    sort("key",1)

  • 相关阅读:
    【BZOJ 2124】【CodeVS 1283】等差子序列
    【BZOJ 1036】【ZJOI 2008】树的统计Count
    【BZOJ 1901】【ZJU 2112】Dynamic Rankings
    【BZOJ 3924】【ZJOI 2015】幻想乡战略游戏
    【BZOJ 4103】【THUSC 2015】异或运算
    【BZOJ 4513】【SDOI 2016】储能表
    【HDU 3622】Bomb Game
    【BZOJ 3166】【HEOI 2013】Alo
    【BZOJ 3530】【SDOI 2014】数数
    【BZOJ 4567】【SCOI 2016】背单词
  • 原文地址:https://www.cnblogs.com/zzy7372/p/10278864.html
Copyright © 2011-2022 走看看