zoukankan      html  css  js  c++  java
  • 【Mongodb教程 第七课 】MongoDB 查询文档

    find() 方法

    要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法。

    语法

    基本的find()方法语法如下

    >db.COLLECTION_NAME.find()

    find() 方法将在非结构化的方式显示所有的文件。

    pretty() 方法

    结果显示在一个格式化的方式,可以使用 pretty() 方法.

    语法:

    >db.mycol.find().pretty()

    例子

    >db.mycol.find().pretty()
    {
       "_id": ObjectId(7df78ad8902c),
       "title": "MongoDB Overview", 
       "description": "MongoDB is no sql database",
       "by": "tutorials point",
       "url": "http://www.yiibai.com",
       "tags": ["mongodb", "database", "NoSQL"],
       "likes": "100"
    }
    >

    除了find() 方法外,还有一个 findOne() 法,返回一个文件。

    RDBMS Where子句和MongoDB等同语句

    要查询文件的一些条件的基础上,可以使用下面的操作

    操作语法例子RDBMS 等同
    Equality {<key>:<value>} db.mycol.find({"by":"tutorials point"}).pretty() where by = 'tutorials point'
    Less Than {<key>:{$lt:<value>}} db.mycol.find({"likes":{$lt:50}}).pretty() where likes < 50
    Less Than Equals {<key>:{$lte:<value>}} db.mycol.find({"likes":{$lte:50}}).pretty() where likes <= 50
    Greater Than {<key>:{$gt:<value>}} db.mycol.find({"likes":{$gt:50}}).pretty() where likes > 50
    Greater Than Equals {<key>:{$gte:<value>}} db.mycol.find({"likes":{$gte:50}}).pretty() where likes >= 50
    Not Equals {<key>:{$ne:<value>}} db.mycol.find({"likes":{$ne:50}}).pretty() where likes != 50

    AND 在MongoDB中用法

    语法:

    在  find() 方法,如果通过多个键分离',',那么 MongoDB 处理 AND 条件。AND 基本语法如下所示:

    >db.mycol.find({key1:value1, key2:value2}).pretty()

    例子

    下面给出的例子将显示所有的教程,标题是“MongoDB Overview“

    >db.mycol.find({"by":"tutorials point","title": "MongoDB Overview"}).pretty()
    {
       "_id": ObjectId(7df78ad8902c),
       "title": "MongoDB Overview", 
       "description": "MongoDB is no sql database",
       "by": "yiibai",
       "url": "http://www.yiibai.com",
       "tags": ["mongodb", "database", "NoSQL"],
       "likes": "100"
    }
    >

    对于上面给出的例子相当于where子句 ' where by='yiibai' AND title='MongoDB Overview' , 可以通过任意数量的键值对在 find 子句。 

    MongoDB中OR

    语法:

    OR条件的基础上要查询文件,需要使用$or关键字。OR 基本语法如下所示:  

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

    例子

    下面给出的例子将显示所有的教程,由'yiibai' 所写或标题是“MongoDB Overview '

    >db.mycol.find({$or:[{"by":"yiibai"},{"title": "MongoDB Overview"}]}).pretty()
    {
       "_id": ObjectId(7df78ad8902c),
       "title": "MongoDB Overview", 
       "description": "MongoDB is no sql database",
       "by": "yiibai",
       "url": "http://www.yiibai.com",
       "tags": ["mongodb", "database", "NoSQL"],
       "likes": "100"
    }
    >

    AND 和 OR 一起使用

    例子

    下面给出的例子将显示有像的文件大于100,其标题是“MongoDB Overview'或者是'yiibai' 。等效于 SQL where子句 为 'where likes>10 AND (by = 'yiibai' OR title = 'MongoDB Overview')'

    >db.mycol.find("likes": {$gt:10}, $or: [{"by": "yiibai"}, {"title": "MongoDB Overview"}] }).pretty()
    {
       "_id": ObjectId(7df78ad8902c),
       "title": "MongoDB Overview", 
       "description": "MongoDB is no sql database",
       "by": "yiibai",
       "url": "http://www.yiibai.com",
       "tags": ["mongodb", "database", "NoSQL"],
       "likes": "100"
    }
    >
  • 相关阅读:
    G面经prepare: Maximum Subsequence in Another String's Order
    G面经prepare: Set Intersection && Set Difference
    G面经prepare: Pattern Match
    G面经prepare: Data Stream Average
    Summary: Final Keyword
    G面经prepare: Android Phone Unlock Pattern
    G面经prepare: Jump Game Return to Original Place
    G面经prepare: Reorder String to make duplicates not consecutive
    G面经prepare: Sort String Based On Another
    G面经Prepare: Valid Preorder traversal serialized String
  • 原文地址:https://www.cnblogs.com/jthb/p/4033410.html
Copyright © 2011-2022 走看看