zoukankan      html  css  js  c++  java
  • MongoDB常用操作---查询find方法

    (来源:MongoDB常用操作一查询find方法db.collection_name.find())

    db.collection_name.find()

    1. 基本查询
      db.users.find({}, {'name' : 1, 'skills' : 1});
      where name = 'hurry';
      第一个{} 放where条件 第二个{} 指定那些列显示和不显示 (0表示不显示 1表示显示)

    2. and查询
      db.users.find({'name' : 'hurry', 'age' : 18});
      where name = 'hurry' and age = 18;

    3. or查询
      db.users.find({ '$or' : [{'name' : 'hurry'}, {'age' : 18}]});
      where name = 'hurry' or age = 18;

    4. 比较查询 <, <=, >, >= ($lt, $lte, $gt, $gte )
      db.users.find({'age' : {'$gte' : 20, '$lte' : 30}});
      where age >= 20 and age <= 30;

    5. in, not in ($in, $nin)
      db.users.find({'age' : {'$in' : [10, 22, 26]}});
      where age in (10, 22, 26);

    6. 匹配null
      db.users.find({'age' : null);
      where age is null;

    7. like (mongoDB 支持正则表达式)
      db.users.find({name:/hurry/});
      where name like "%hurry%";
      db.users.find({name:/^hurry/});
      where name like "hurry%";

    8. 使用distinct
      db.users.distinct('name');
      select distinct (name) from users;

    9. 使用count
      db.users.find({"price":"1"}).count()
      select count(*) from users where price = "1";

    10. 数组查询(mongo特色)

      $all

      db.users.find({"price": {'$all' : ['3.1','4.1']}})
      查询price是 ['3.1','4.1']

      $size

      db.users.find({"price":{$size:2}})
      查询price是 二维数组

      $slice

      db.users.find({},{"price":{$slice :3}})
      设置返回的price的长度
      假设 price 为 ['3.1','4.1','5.1']
      db.users.find({},{"price":{$slice :3}}) 返回 ['3.1','4.1','5.1']
      db.users.find({},{"price":{$slice :2}}) 返回 ['3.1','4.1']
      db.users.find({},{"price":{$slice :1}}) 返回 ['3.1']

      可以设置2个整数 第一个是skipNum 第二个是返回的长度
      db.users.find({},{"price":{$slice :[1,1]}}) 返回 ['4.1']
      如果skip大于等于price的长度,则返回[]

    11. $where查询

      $gt:大于
      $lt:小于
      $gte:大于或等于
      $lte:小于或等于
      db.collection.find({ "field" : { $gt: value1, $lt: value2 } } ); // value1 < field < value

      不等于 $ne
      db.things.find( { x : { $ne : 3 } } );

      in 和 not in ($in $nin)
      db.collection.find( { "field" : { $in : array } } );

      取模运算$mod
      db.things.find( "this.a % 10 == 1")
      db.things.find( { a : { $mod : [ 10 , 1 ] } } )

      $exists用来判断一个元素是否存在
      db.things.find( { a : { $exists : true } } ); // 如果存在元素a,就返回
      db.things.find( { a : { $exists : false } } ); // 如果不存在元素a,就返回

      $elemMatch

      The $elemMatch operator limits the contents of an array field from the query results to contain only the first element matching the $elemMatch condition.
      限制返回内容,并且只返回第一个匹配的数据

      {
       _id: 1,
       zipcode: "63109",
       students: [
        { name: "john", school: 102, age: 10 },
        { name: "jess", school: 102, age: 11 },
        { name: "jeff", school: 108, age: 15 }
         ]
      }
      {
       _id: 2,
       zipcode: "63110",
       students: [
                    { name: "ajax", school: 100, age: 7 },
                    { name: "achilles", school: 100, age: 8 },
                 ]
      }
      {
       _id: 3,
       zipcode: "63109",
       students: [
                    { name: "ajax", school: 100, age: 7 },
                    { name: "achilles", school: 100, age: 8 },
                 ]
      }
      {
       _id: 4,
       zipcode: "63109",
       students: [
                    { name: "barney", school: 102, age: 7 },
                    { name: "ruth", school: 102, age: 16 },
                 ]
      }
      

      查询语句:db.schools.find( { zipcode: "63109" },
      { students: { $elemMatch: { school: 102 } } } )

      返回结果

      { "_id" : 1, "students" : [ { "name" : "john", "school" : 102, "age" : 10 } ] }
      { "_id" : 3 }
      { "_id" : 4, "students" : [ { "name" : "barney", "school" : 102, "age" : 7 } ] }
      
    12. 正则表达式

      db.things.find({"price":/4.1/})
      返回price数组里面有4.1的数据
      db.things.find({"productId":/6{1,6}/})
      返回productId值为6到666666的数据

  • 相关阅读:
    yaffs和jffs2简单比较
    UBI文件系统简介
    非零即1的一种算法
    UBIFS介绍
    MTD
    ubifs & mtd
    ubifs笔记
    UBIFS 术语
    ubi层次
    faststone 注册码
  • 原文地址:https://www.cnblogs.com/cuiyf/p/6565114.html
Copyright © 2011-2022 走看看