• MongoDB学习笔记(二、MongoDB查询)


    目录:

    • MongoDB数据类型
    • MongoDB新增语法
    • MongoDB查询语法
    • MongoDB查询选择器
    • MongoDB关联查询

    MongoDB数据类型:

    MongoDB新增语法:

    语法:db.collectionName.insert(document)

    示例

    1、db.local.insert({name:'thinking in java', price:88.08})

    2、或者是先定义变量

    var data = {name:'jdr', age:18}

    db.local.insert(data)

    MongoDB查询语法:

    db.collectionName.find(query, projection)

    参数说明

    1、query:可选;可使用查询操作符指定查询条件。

    2、projection:可选;可指定返回的键,若不指定则返回所有的键(1=显示,0=不展示)

    示例

    1、查询所有:db.local.find()

    2、查询指定条件:db.local.find({name: 'zd'})

    3、如果想要返回的数据易读的话可加上pretty():db.local.find({name: 'zd'}).pretty()

    4、指定返回name:db.local.find({},{name:1})

    5、指定不返回name:db.local.find({},{name:0})

    MongoDB查询选择器:

    1、范围选择器、布尔选择器、正则选择器:

    2、排序选择器:1=升序,-1=降序

    db.local.find().sort({name:1, age:-1})

    3、跳过和限制选择器,跳过前面n条数据,限制和mysql中limit效果一致

    db.local.find().skip(1).limit(2)

    4、过滤重复字段选择器,和mysql中distinct一致

    db.local.distinct()

    5、 数组选择器

    )单元素查询:db.local.find({'favorites.movies':'凹凸曼'})

    )多元素查询:db.local.find({'favorites.movies':{'$all':['阿凡达', '泰坦尼克号']}})

    )精准查找:db.local.find({'favorites.movies':['凹凸曼', '美队2', '喜羊羊与灰太狼']})

    )索引查询(查找数组中第一个钢铁侠的喜欢电影):db.local.find({'favorites.movies.0':'钢铁侠'})

    )数组子集:db.local.find({}, {'favorites.movies':{'$slice':[3,3], '_id':1}})

    '$slice':[3,3]:跳过前3条数据并取3条数据

    6、对象数组选择器

    )单元素查询:db.local.find({'citys':{'code':0001, 'addr':'上海'}})

    )多元素查询:db.local.find({'comments':{'$elemMatch':{'movies':'倩女幽魂', 'content':'好看!'}}})

    demo:https://github.com/mrjdrs/mongodb-demo/tree/master/mongo-selector

    MongoDB关联查询:

    因mongo单个文档大小不能超过16M,但因特殊的业务场景我们又不得不这样存储,为了解决这一问题mongo提供了DBRef。

    DBRef语法:

    1、$ref:引用文档所在聚合名称。

    2、$id:所在集合的id值。

    3、$db:可选;集合所在库的实例名。

    示例

    db.collectionName.insert({"name":"zd", "userId":
        {"$ref":"users", "$id":ObjectId("objectId value"), "$db":"dbName"}
    })
    db.collectionName.insert({"name":"zd", "userId":
        [
            {"$ref":"users", "$id":ObjectId("objectId value"), "$db":"dbName"},
            {"$ref":"users", "$id":ObjectId("objectId value"), "$db":"dbName"},
        ]
    })
    
    db.collectionName.findOne({"name":"zd"}).userId.fetch()
    db.collectionName.findOne({"name":"zd"}).userId[0].fetch()
  • 相关阅读:
    小米手机4 rom 下载链接
    java 两个线程交替打印到100
    获取积分最多的人(二)
    刷题通过的题目排名
    考试分数(二)
    牛客的课程订单分析(二)
    牛客的课程订单分析(三)
    docker使用小记
    Dynamic Graph Collaborative Filtering
    Learnable Embedding Sizes for Recommender Systems
  • 原文地址:https://www.cnblogs.com/bzfsdr/p/11941146.html
Copyright © 2020-2023  润新知