码迷,mamicode.com
首页 > 数据库 > 详细

mongoDB

时间:2018-09-12 17:10:13      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:redis   出现   des   hide   行数据   ODB   set   opened   obj   

MongoDB:文件型数据库 find() update() delete() insert()持久化

redis:get set 默认持久化

 

1.MongoDB是什么及其概念:

#MongoDB是一个快速存储数据(JSON),并ORM操作的数据库
#MongoDB是文件型数据库,不存在关系
#MongoDB中基本上存储了大量的冗余数据
#MongoDB中没有字段的概念
#MongoDB是非常灵活的数据库

#专有名词:
#Mysql MongoDB
#DB DB
#Table Colletions Table概念
#row Documents row概念
#字段 Field 字段概念
#_id 唯一概念

#不存在即创建:
#如果使用了不存在的对象即创建该对象

2.MongoDB的存储结构:

技术分享图片
关系型数据库:

#id name age course score score1

#1 子龙 84 python 99 0
#2 xiaoqinglong 73 javascript 0 99

文件型数据库:
[
    {
        _id:ObjectId("1298478375f8234d")
        ids:1,
        names:子龙,
        ages:84,
        courses:python,
        scores:99
    },
    {
        id:2,
        name:xiaoqinglong,
        age:73,
        course:javascript,
        score1:99
    }
]
View Code

3.初识MongoDB

#1.安装mongoDB bin目录环境变量
#2.启动mongoDB:
#mongod (手动创建文件夹) c:\data\db
#mongod --dbpath "E:\Program Files\MongoDB\data\db"
#3.MongoDB的默认端口号:27017  (redis:6379 MySql:3306)

4.mongodb 的指令:

#show dbs 查看当前数据库服务器中的所有数据库(DB)
#use dbname 创建或使用数据库
#db 查看当前使用的数据库 / 代指当前使用的数据库的名字或对象 
#show tables 查看当前数据库的 数据表 Collations

5.MongoDB的增删改查:

#增:
#db.Collations.insert({"name":"zilong"}) 
#db.Collations.insert([{"name":"zilong"},{"name":"123"}]) 
#// insert 方式 被官方不推荐了
#1.db.Collations.insertOne({}) 只能单行操作插入
#2.db.Collations.insertMany([{},{}]) 根据array(列表)中的元素插入多行数据
#改:
#db.user.update({"name":"酸菜"},{$set:{"name":"老坛酸菜"}})
#db.user.update({"name":"酸菜"},{$set:{"name":"老坛酸菜"}},多条修改:true)
#// update 方式 被官方不推荐了
#db.user.updateOne({"name":"子龙"},{$set:{"name":"赵子龙"}})
#db.user.updateMany({"name":"小青龙"},{$set:{"name":"白虎"}})
#删除:
#db.user.remove({})
#// remove 方式 被官方不推荐了
#db.user.deleteOne({"name":"白虎"})
#db.user.deleteMany({"name":"翠花儿"})
#查:
#1.db.find({条件:1})
#2.db.findOne({条件:1})
#db.user.findOne({"name":"酸菜","age":1}) 逗号相当于 and

#3.数学比较符:
#$lt 小于
#$gt 大于
#$lte 小于等于
#$gte 大于等于
#find({"字段":{$比较符:值}})
#db.user.find({"age":{$gt:2}}) # where age > 2
#查:
#1.db.find({条件:1})
#2.db.findOne({条件:1})
#db.user.findOne({"name":"酸菜","age":1}) 逗号相当于 and

#3.数学比较符:
#$lt 小于
#$gt 大于
#$lte 小于等于
#$gte 大于等于
#find({"字段":{$比较符:值}})
#db.user.find({"age":{$gt:2}}) # where age > 2

6.修改器:

#$set : 将某个key的value 修改为 某值
#$unset: 删除字段 {$unset: {test: "" }}
#$inc:{$inc:{"age":100}} 原有值基础上增加 xxx
#array:
#$push : 向数组Array最后位置插入一条元素 {$push:{"hobby":1234}} [].append(1234)
#$pull : 删除数组中的某一个元素 {$pull:{"hobby":123}} 
#删除字典 #db.user.updateOne({"_id":ObjectId("5b98794ec34b9812bcabdde7"),"hobby.age":18},{$unset:{"hobby.$":1}})
#$pop : 删除数组的第一个或最后一个 
#最后一个:{$pop:{"hobby":1}} 
#第一个:{$pop:{"hobby":-1}} 
#$ :代指符合条件的某数据 array.$ :
#db.user.updateOne({"_id":ObjectId("5b98794ec34b9812bcabdde7"),"hobby.name":"翠花儿"},{$set:{"hobby.$.name":"农妇山泉"}})
#查询$关键字:
#$in: db.user.find({age:{$in:[1,2,3]}}) 字段符合in,array中的数值
#$or: db.user.find({$or:[{age:{$in:[1,2,3,4]}},{name:666}]})
#$all: db.user.find({test:{$all:[1,2]}}) array元素相同即可 或 包含所有$all中的元素

7.数据类型:

#基于BSON结构
#string 字符串,Utf8
#integer 整型
#double 双精度,包含float,MongoDB中不存在Float
#Null 空数据类型
#Date 时间类型 ISODate(2018-9-12 10:45:58)
#Timestamp 时间戳类型 ISODate("123123")
#ObjectId 对象ID Documents 自生成的 _id #ObjectId("5b98794ec34b9812bcabdde7")
#"5b151f85" 代指的是时间戳,这条数据的产生时间
#"364098" 代指某台机器的机器码,存储这条数据时的机器编号
#"09ab" 代指进程ID,多进程存储数据的时候,非常有用的
#"2e6b26" 代指计数器,这里要注意的是,计数器的数字可能会出现重复,不是唯一的
#以上四种标识符拼凑成世界上唯一的ObjectID
#只要是支持MongoDB的语言,都会有一个或多个方法,对ObjectID进行转换
#可以得到以上四种信息
#不能够被 JSON 化
#from BSON import ObjectId
#?arrays [] 数组类型 相当于python中的list $pop $push $pull
#?object {name:1} 对象类型 相当于python中的dict
#ps:由于MongoDB存储自由度没有限制,所以我们程序员要定义好数据格式,尽可能少的修改格式(开发阶段随便修改)

8. 排序 跳过 显示条目

#sort 排序 find().sort(id:-1/1) 1 升序 2 降序 desc
#skip 跳过 find().skip(2) 从三条开始返回
#limit 显示条目 find().limit(2)只显示前两条
#混搭:
#db.user.find({}).sort({age:-1 }).skip(1).limit(2)
#根据age字段进行降序排列,并且跳过第一条,从第二条开始返回,两条数据

9.pymongo:

#sort("age",pymongo.DESCENDING)

 

mongoDB

标签:redis   出现   des   hide   行数据   ODB   set   opened   obj   

原文地址:https://www.cnblogs.com/chongdongxiaoyu/p/9635329.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!