资讯专栏INFORMATION COLUMN

mongodb学习笔记

lemanli / 1609人阅读

摘要:用于存储布尔值真假。将一个值与二进制的元素的最低值和最高值相对比。可选,抛出异常的级别。在建立唯一索引时是否删除重复记录指定创建唯一索引。索引权重值,数值在到之间,表示该索引相对于其他索引字段的得分权重。

Robo 3T -< 可视化工具
http://blog.csdn.net/i_vic/ar...

[Unit]

Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/bin/mongodb.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target
基本概念

database 数据库

collections 数据库表/集合

document 数据记录行/文档

field 数据字段/域

index 索引

primary key 主键,mongodb默认将_id字段设置成主键

常用命令

show dbs 显示所有数据库

db 显示当前数据库

use runoob 切换到runoob数据库

数据类型

String 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。

Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。

Boolean 布尔值。用于存储布尔值(真/假)。

Double 双精度浮点值。用于存储浮点值。

Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。

Arrays 用于将数组或列表或多个值存储为一个键。

Timestamp 时间戳。记录文档修改或添加的具体时间。

Object 用于内嵌文档。

Null 用于创建空值。

Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。

Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。

Object ID 对象 ID。用于创建文档的 ID。

Binary Data 二进制数据。用于存储二进制数据。

Code 代码类型。用于在文档中存储 JavaScript 代码。

Regular expression 正则表达式类型。用于存储正则表达式。

操作数据库 创建数据库

use database_name 如果数据库不存在,则直接创建,如果存在,就切换到指定数据库

删除数据库

db.dropDatabase() 删除当前数据库

删除集合

show tables db.collection.drop() 删除collections collections用table名替换

删除字段

{$unset:{field:1}} ------ db.t3.update({name:"wangwenlong"},{$unset:{age:1}})

插入文档

语法:db.COLLECTION_NAME.insert(document)

db.col.insert({
    title:"MongoDB教程",
    "by":"菜鸟教程",
    "url":"runoob.com",
    "tags":["mongodb","database","NoSQL"],
    "likes":100
})
更新文档
update()方法->
db.collection.update(
    ,
    ,
    {
        upsert:,
        multi:,
        writeConcern:
    }
)

参数说明:

query: update的查询条件,类似sql update查询内where后面的。

update:update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的

upsert:可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi:可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

writeConcern:可选,抛出异常的级别。

db.runoob.update(
    {"title":"mongoDB教程"},
    {$set:{"title":"MongoDB"}},
    {multi:true}
)

save()方法->

db.collection.save(
    ,
    {
        writeConcern:
    }
)

参数说明:

document:文档数据

writeConcern:可选,抛出异常的级别。

更多实例:

只更新第一条记录

db.col.update(
    {"count":{$gt:1}},
    {$set:{"test2","ok"}}
)

全部更新

db.col.update(
    {"count":{$gt:3}},
    {$set:{"test2":"ok"}},
    false,
    true
)

只添加第一条

db.col.update(
    {"count":{$gt:4}},
    {$set:{"test5":"ok"}},
    true,
    false
)

全部添加进去

db.col.update(
    {"count":{$gt:5}},
    {$set:{"test5":"ok"}},
    true,
    true
)

全部更新

db.col.update(
    {"count":{$gt:15}},
    {$inc:{"count":1}},
    false,
    true
)

只更新第一条记录

db.col.update(
    {"count":{$gt:10}},
    {$inc:{"count":1}},
    false,
    false
)
查找文档
db.collection_name.find()
db.collection_name.findOne()
正则/模糊查询

result = medicines.find_one({"goods_name":{"$regex":"^仁和"}})
与SQL WHERE 对比:

等于
db.col.find({"by":"菜鸟教程"}).pretty()

where by="菜鸟教程"

小于
db.col.find({"likes":{$lt:50}}).pretty()

where like < 50

小于或等于
db.col.find({"likes":{$lte:50}}).pretty()

where like <= 50

大于
db.col.find({"likes":{$gt:50}}).pretty()

where like > 50

大于或等于
db.col.find({"likes":{$gte:50}}).pretty()

where like >= 50

不等于
db.col.find({"likes":{$ne:50}}).pretty()

and 条件
db.col.find({key1:value1,key2:value2}).pretty()

OR 条件
db.col.find({$or:[{"by":"菜鸟教程"},{"title":"MongoDB教程"}]}).pretty()

AND 和 OR 联合使用
db.col.find({"likes":$gt:50},$or:[{"by":"MongoDB中文网"},{"title":"MongoDB教程"}]).pretty()

db.col.find({"likes":{$lt:200,$gt:100}})

$type

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

只查询某些字段 db.find({}, {"qaid": 1, "question": 1, "answer": 1, "_id": 0})

类型 数字
Double 1
String 1
Object 3
Array 4
Binary data 5
Undefined 6 已废弃。
Object id 7
Boolean 8
Date 9
Null 10
Regular Expression 11
JavaScript 13
Symbol 14
JavaScript (with scope) 15
32-bit integer 16
Timestamp 17
64-bit integer 18
Min key 255Query with -1.
Max key 127
Limit查询

db.collection_name.find().limit(NUMBER)
fets = phones.find().limit(2)

skip查询

db.collection_name.find().limit(NUMBER).skip(NUMBER)

排序 sort()方法

sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。

db.collection_name.find().sort({key:1})
fets = phones.find().sort("price",-1)

db.Account.find().sort("UserName") --默认为升序

   db.Account.find().sort("UserName",pymongo.ASCENDING) --升序

   db.Account.find().sort("UserName",pymongo.DESCENDING) --降序
删除文档
db.collection.remove(
    ,
    {
        justone:,
        writeConcern:
    }
)

参数说明:

query (可选)删除的文档的条件

justOne (可选)如果设为true或1,则只删除一个文档

writeConcern (可选)抛出异常的级别
4.

索引

ensureIndex()方法
db.collection_name.eusureIndex({key:1}) key值是要创建的索引字段,1为指定按升序创建索引,-1是按降序来创建索引
db.col.ensure({"title":1,"description":-1})

参数 类型 描述
background Boolean 建索引过程会阻塞其它数据库操作,background可指定以后台方式创建索引,即增加 "background" 可选参数。 "background" 默认值为false。
unique Boolean 建立的索引是否唯一。指定为true创建唯一索引。默认值为false.
name string 索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生成一个索引名称。
dropDups string 在建立唯一索引时是否删除重复记录,指定 true 创建唯一索引。默认值为 false.
sparse string 对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含对应字段的文档.。默认值为 false.
expireAfterSeconds string 指定一个以秒为单位的数值,完成 TTL设定,设定集合的生存时间。
v string 索引的版本号。默认的索引版本取决于mongod创建索引时运行的版本。
weights string 索引权重值,数值在 1 到 99,999 之间,表示该索引相对于其他索引字段的得分权重。
default_language string 对于文本索引,该参数决定了停用词及词干和词器的规则的列表。 默认为英语
language_override string 对于文本索引,该参数指定了包含在文档中的字段名,语言覆盖默认的language,默认值为 language.

需要做的:

MongoDB聚合

MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。

MongoDB中聚合的方法使用aggregate()
方法:

db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION) MongoDB复制

mongodb的复制最少需要提供两个节点。一个是主节点,负责处理客户端需求,其他的都是从节点,负责复制主节点上的数据

pymongo使用问题

将ObjectId序列化:

from bson import json_util
json.dumps(fet, default=json_util.default, ensure_ascii=False)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19096.html

相关文章

  • MongoDB学习笔记 — mac下MongoDB的安装与使用

    摘要:在上安装有两种方法下载安装包安装使用安装方式下载安装包安装注意在中不支持像方式,只好用方式来下载。再打开一个终端窗口,执行以下命令停止在开启服务的控制台,即可停止或者直接关闭开启服务的控制台。 在Mac上安装MongoDB有两种方法: 下载安装包安装 使用 brew 安装 1. curl方式下载安装包安装 注意:在mac中不支持像wget方式,只好用curl方式来下载。 可以直接到...

    guqiu 评论0 收藏0
  • MongoDB学习笔记 — mac下MongoDB的安装与使用

    摘要:在上安装有两种方法下载安装包安装使用安装方式下载安装包安装注意在中不支持像方式,只好用方式来下载。再打开一个终端窗口,执行以下命令停止在开启服务的控制台,即可停止或者直接关闭开启服务的控制台。 在Mac上安装MongoDB有两种方法: 下载安装包安装 使用 brew 安装 1. curl方式下载安装包安装 注意:在mac中不支持像wget方式,只好用curl方式来下载。 可以直接到...

    luck 评论0 收藏0
  • MongoDB学习笔记

    背景 学习MongoDB,并做笔记整理,以便于用到时查看。 MogoDB NoSQL Database(JS) 使用方便,想存就存,相取就取 是MEAN中的M(数据) 安装 https://www.mongodb.com/downl... 选择相应系统安装包 安装mongoose 创建一个文件夹,并npm init --yes,创建package.js npm install mongoos...

    April 评论0 收藏0
  • mongo学习笔记

    摘要:学习笔记一安装测试配置下载安装从官网下载对应的压缩包解压即可。 mongo学习笔记 一 安装测试配置 1 下载安装 从mongodb官网下载对应的压缩包,解压即可。 copy命令到/usr/local/bin目录 (cp mongod /usr/local/bin;cp mongo /usr/local/bin) 2 创建配置文件 参考官方文档https:/...

    zhangyucha0 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<