前言

针对本笔记有以下必看内容,请优先阅读
另外这只是学习笔记,如您在工作方面有所需求请阅览菜鸟教程-MongoDB
本笔记格式可能对竖屏移动端不太友好,请移动端尽量使用横屏访问

查.find

使用.findOne以只查询一条数据
python .find_one

find的用法

find的用法是最基础的,很多find的用法在语句中都是通用的,笔记不赘述需灵活应变

.find({
    //筛选条件语句
},{
    //显示条件语句
})

显示选定数据

0 不显示,1 显示

.find({...},{"_id":0,"字段1":1,"字段1":1})

查询全部数据

.find({})

筛选指定数据

查询整数型浮点型值时不需要添加双引号

.find({
    "键":"值",
    "键2":"值2",
    ...
})

筛选范围数据

操作指令操作指令操作指令
等于小于$lt小于等于$lte
不等于$ne大于$gt大于等于$gte
长度(数组)$size

查询整数型浮点型值时不需要添加双引号

.find({
    "键":{
        "指令":值,
        "指令2":值2,
        ...
    }
})

高级语法使用

指令解释
$andAND语法与正常写查询语句效果无异
$or或语句,只要符合其中一条条件就为True
.find({
    "$and":[
        {"键":"值"},
        {"键2":"值2"}
    ]
})

查询子文档

.find({
    "键.子文档键":"值",
    "键2.子文档键":"值2",
    ...
})

更多命令

统计.count

统计查询的记录数

.find({...}).count()

跳过结果.skip

跳过的文档数量

.find({...}).skip(值)

填10则代表返回结果时跳过前10个文档

限制结果.limit

返回的文档数量

.find({...}).limit(值)

填10则代表只返回前10个文档

排序.sort

1 表示升序,-1 表示降序

.find({...}).sort({
    "键1":1,
    "键2":-1
})

增.insert

单条数据.insertOne

python .insert_one

添加整数型浮点型值时不需要添加双引号

.insertOne({
    "键":"值",
    "键2":"值2",
    ...
})

多条数据.insertMany

python .insert_many

添加整数型浮点型值时不需要添加双引号

.insertOne([
    {"键":"值","键2":"值2",...},
    {"键":"值","键2":"值2",...},
    ...
])

删.delete

python .delete_one
使用.deleteMany以删除多条数据
python .delete_many

删除整数型浮点型值时不需要添加双引号

.deleteOne({
    "键":"值",
    "键2":"值2",
    ...
})

改.update

python .update_one
使用.updateMany以更新多条数据
python .update_many

操作指令操作指令
设置新值$set自增值$inc

修改整数型浮点型值时不需要添加双引号

.updateOne(
    { "name": "Alice" },                // 过滤条件
    { $set: { "age": 26 } },            // 更新操作
    { "upsert": false }                 // 可选参数,可不添加
);

"age": NumberInt(26) - 指定数据类型为整数型

聚合.aggregate

过滤数据$match

用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。

.aggregate([{
    "$match":{...}
}])

修改文档结构$project

修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。

.aggregate([{
    "$project":{...}
}])

一般可用于修改显示选定数据,与下类似
0 不显示,1 显示

.find({...},{"_id":0,"字段1":1,"字段1":1})

分组$group

对输出结果进行分组

用法示例

.aggregate([{
    "$group":{
        "_id":"$banji",
        "最大年龄":{"$max":"$age"},
        "最小年龄":{"$min":"$age"},
        "平均年龄":{"$avg":"$age"}
    }
}])

连接$lookup

指令解释
from指定要连接的集合
localField当前集合中的字段
foreignField要连接的集合中的字段
as连接后结果的别名

用法示例

.aggregate([
    {
        "$lookup":{
            "from":"product", //指定要连接的集合
            "localField":"product_id", //当前集合中的字段
            "foreignField":"product_id", //要连接的集合中的字段
            "as":"product_info" //连接后结果的别名
        }
    },
    {
        "$unwind":"$product_info"
    },
    {
        "$project":{
            "_id":0,
            "订单ID":"$order_id",
            "产品ID":"$product_id",
            "产品名称":"$product_info.product_name",
            "产品类型":"$product_info.product_type",
            "购买数量":"$count",
        }
    }
])

拆分$unwind

将数组中的每个元素拆分成单独的文档

.aggregate([
    {...},
    {
        "$unwind":"$product_info" //此处拆分product_info
    },
    {...}
])

一名既不Kirakira也不让人Dokidoki的普通人~