zoukankan      html  css  js  c++  java
  • mongo操作及相关资料

    mongo操作 
    find方法

    db.collection_name.find();

    查询所有的结果:

    select * from users;

    db.users.find();

    指定返回那些列(键):

    select name, skills from users;

    db.users.find({}, {'name' : 1, 'skills' : 1});

    补充说明: 第一个{} 放where条件 第二个{} 指定那些列显示和不显示 (0表示不显示 1表示显示)

    where条件:

    1.简单的等于:

    select name, age, skills from users where name = 'hurry';

    db.users.find({'name' : 'hurry'},{'name' : 1, 'age' : 1, 'skills' : 1});

    2.使用and

    select name, age, skills from users where name = 'hurry' and age = 18;

    db.users.find({'name' : 'hurry', 'age' : 18},{'name' : 1, 'age' : 1, 'skills' : 1});

    3.使用or

    select name, age, skills from users where name = 'hurry' or age = 18;

    db.users.find({ '$or' : [{'name' : 'hurry'}, {'age' : 18}] },{'name' : 1, 'age' : 1, 'skills' : 1});

    4.<, <=, >, >= ($lt, $lte, $gt, $gte )

    select * from users where age >= 20 and age <= 30;

    db.users.find({'age' : {'$gte' : 20, '$lte' : 30}});

    5.使用in, not in ($in, $nin)

    select * from users where age in (10, 22, 26);

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

    6.匹配null

    select * from users where age is null;

    db.users.find({'age' : null);

    7.like (mongoDB 支持正则表达式)

    select * from users where name like "%hurry%";

    db.users.find({name:/hurry/});

    select * from users where name like "hurry%";

    db.users.find({name:/^hurry/});

    8.使用distinct

    select distinct (name) from users;

    db.users.distinct('name');

    9.使用count

    select count(*) from users;

    db.users.count();

    10.数组查询 (mongoDB自己特有的)

    如果skills是 ['java','python']

    db.users.find({'skills' : 'java'}); 该语句可以匹配成功

    $all

    db.users.find({'skills' : {'$all' : ['java','python']}}) skills中必须同时包含java 和 python

    $size

    db.users.find({'skills' : {'$size' : 2}}) 遗憾的是$size不能与$lt等组合使用

    $slice

    db.users.find({'skills' : {'$slice : [1,1]}})

    两个参数分别是偏移量和返回的数量

    11.查询内嵌文档

    12.强大的$where查询

    db.foo.find();
    { "_id" : ObjectId("4e17ce0ac39f1afe0ba78ce4"), "a" : 1, "b" : 3, "c" : 10 }
    { "_id" : ObjectId("4e17ce13c39f1afe0ba78ce5"), "a" : 1, "b" : 6, "c" : 6 }

    如果要查询 b = c 的文档怎么办?

    > db.foo.find({"$where":function(){

    for(var current in this){
    for(var other in this){
    if(current != other && this[current] == this[other]){
    return true;
    }
    }
    }
    return false;

    }});

    { "_id" : ObjectId("4e17ce13c39f1afe0ba78ce5"), "a" : 1, "b" : 6, "c" : 6 }

    相关链接:

    http://www.cnblogs.com/lipan/archive/2011/03/08/1966463.html

    http://fuliang.iteye.com/blog/607359

    http://www.cnblogs.com/cxd4321/archive/2011/06/24/2089051.html

    http://www.cnblogs.com/cxd4321/archive/2011/06/24/2089057.html

    http://blog.csdn.net/yczz/article/details/5972624

  • 相关阅读:
    【JVM基础】JVM垃圾回收机制算法
    【java基础】- java双亲委派机制
    Java基础(一)
    JVM
    冷知识: 不会出现OutOfMemoryError的内存区域
    疯狂Java:突破程序员基本功的16课-李刚编著 学习笔记(未完待续)
    nor flash之写保护
    spinor/spinand flash之高频通信延迟采样
    nor flash之频率限制
    使用littlefs-fuse在PC端调试littlefs文件系统
  • 原文地址:https://www.cnblogs.com/276815076/p/3394442.html
Copyright © 2011-2022 走看看