美文网首页我爱编程
mongodb文档查询操作

mongodb文档查询操作

作者: 非文666 | 来源:发表于2018-02-25 15:39 被阅读0次

    mongodb使用find()方法执行查询操作,

    语法

    db.COLLECTION_NAME.find(
    <query>
    <projection>
    )
    

    参数解析

    • query 可选,指定查询操作条件
    • projection 可选,指定返回的键,查询时返回所有的键时,省略该参数即可
      如果要以易读的方式来查询数据,可使用以下方法
    db.collection_name.find().pretty()
    

    实例

    查询myCollection集合name属性值为ddd的文档

    > db.myCollection.find({"name":"ddd"})
    { "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "name" : "ddd", "age" : 19 }
    > db.myCollection.find({"name":"ddd"}).pretty()
    { "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "name" : "ddd", "age" : 19 }
    

    mongodb与mysql的where使用比较

    操作 格式 范例 解释
    等于 {<key>:<value>} {"name":"ddd"} 查询name值为ddd的文档
    小于 {<key>:{$lt:<value>}} {"age":{$lt:27}} 查询age值小于27的文档
    小于等于 {<key>:{$lte:<value>}} {"age":{$lte:27}} 查询age值小于等于27的文档
    大于 {<key>:{$gt:<value>}} {"age":{$gt:15}} 查询age值大于15的文档
    大于等于 {<key>:{$gte:<value>}} {"age":{$gte:19}} 查询age值大于等于19的文档
    不等于 {<key>:{$ne:<value>}} {"name":{$ne:"ddd"}} 查询name值不等于ddd的文档记录

    mongodb的and条件

    语法

    db.COLLECTION_NAME.find({key1:value1,key2:value2})
    

    and条件就是用,(逗号)隔开查询条件就可以了

    实例

    #  查询name值为ddd且age值为19的文档
    > db.myCollection.find({"name":"ddd","age":19})
    { "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "name" : "ddd", "age" : 19 }
    

    mongodb中的or条件

    语法

    db.COLLECTION_NAME.find({
    $or:[
    {key1:value1},{key2:value2}
    ]
    })
    

    实例

    #查询name值等于ddd或者name值等于wfei的文档
    > db.myCollection.find({$or:[{"name":"ddd"},{"name":"wfei"}]})
    { "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "name" : "ddd", "age" : 19 }
    { "_id" : ObjectId("5a90352b113385ab59f380b2"), "name" : "wfei" }
    

    mongodb指定返回字段

    语法

    # 指定返回feild1与feild2字段返回
    db.COLLECTION_NAME.find(
    query,
    {feild1:1,
    feild2:1}
    )
    # 指定返回feild1与feild2字段不返回
    db.COLLECTION_NAME.find(
    query,
    {feild1:0,
    feild2:0}
    )
    

    实例

    #查询myCollection 集合中name值为ddd,age值为19的文档,且只显示name字段
    > db.myCollection.find({"name":"ddd","age":19},{"name":1})
    { "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "name" : "ddd" }
    #查询myCollection 集合中name值为ddd,age值为19的文档,且显示name之外的其他字段
    > db.myCollection.find({"name":"ddd","age":19},{"name":0})
    { "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "age" : 19 }
    

    这里的“只显示”xxx字段与“显示”xxx之外的其他字段不可以混用
    如以下的用法是不对的

    > db.myCollection.find({"name":"ddd","age":19},{"name":0,"age":1})
    Error: error: {
        "ok" : 0,
        "errmsg" : "Projection cannot have a mix of inclusion and exclusion.",
        "code" : 2,
        "codeName" : "BadValue"
    }
    

    关于操作符

    • lt(less than)小于
    • lte (less than equals)小于等于
    • gt (grater than )大于
    • gte(grater than equals)大于等于
    • ne (not equals)不等于

    相关文章

      网友评论

        本文标题:mongodb文档查询操作

        本文链接:https://www.haomeiwen.com/subject/awnqxftx.html