您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12070|回复: 2
打印 上一主题 下一主题

[php学习资料] mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
+ G, Y8 C5 u  Y& p
* \) K9 J5 U* E: gdb.getCollection('student').find({'age':{'$gt':'20'}})
: ^) m. H, r9 d) P* E7 p/ I
. u" v; ]  b: ?0 M. Q, \- N5 R0 l) G* A0 t: D
' o1 [$ h; l3 ^. V; j
$lt    <   (less  than )- H/ U, n- ^* I" T* ^4 J) _

! h. \' s" f0 h8 E9 k+ X8 Z" v$lte    <=  (less than  or equal to )
% B. c) P! L3 ]- I1 {" F7 j: @
1 Y2 _6 x' Z+ l+ @: B$gt   >    (greater  than )/ W. W7 r: T# a% Y* t

, h9 J1 O0 F* \& c# V& }, ^$gte   >=    (greater  than or   equal to)6 {, n% f$ X: P3 @, @; p
9 [% @+ u0 J- X( o- d! D5 u
游客,如果您要查看本帖隐藏内容请回复
$ h9 a. \" {3 u: T  M
* |" R! P% E6 [4 \/ W1 N8 \
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
0 Z0 U$ K4 d1 [: j% _) T2 T
0 r$ l$ v, [( T+ U$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
2 Z* _$ h4 M, {- q* F& G0 u
: K6 W. s) x* L$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list; m- r  t: a7 T1 M2 M

) M7 W5 G- T5 A1 I# l0 N( f( U$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
2 g- O( J; M* w6 B& D; U8 [: S0 Z; u# \9 m! Q6 o' I
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在# W, Y7 K: \4 A- Q$ y$ |
9 v+ B  n) y0 O2 @$ ^# S
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int  Q' |9 B2 T+ G! x% ]  ^
+ J& ^3 l- s8 K4 Y  m; V
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串+ P" A9 }7 X8 }0 a. l
4 A1 o+ Y" X6 `4 M) E5 {7 f9 p, v
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})0 b, L  h& P. p/ a; @. T
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);: Q2 n4 `0 S# c3 k) W

+ c1 x: |2 q: b; D$exists 键是否存在   {finaGoalLine:{'$exists':true}}
8 K' h1 \4 {$ s/ f/ S* |2 n
+ ?4 B6 z3 i1 |3 h$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]$ g% J+ K3 a% n. P# R' n

0 B& j( ^+ t% g) ]  k) p$ R- l$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
! t, b3 V2 n+ i! X7 Q$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 6 G' ?5 m( G) C# `9 l

" f* P2 m# m  u

. C: c* b$ A  r# I2 @: u- L* x  g/ O% U0 l
; v% b9 i& V/ ?9 k

) H% l1 ~$ h$ H$ P4 h8 t' l
% |, d2 \' h0 j3 C: i6 [$ K! r8 h
- p. `: {: r) o/ K9 O: R/ o3 S/ W

6 u4 I3 ^( g! S5 q' C# x组合使用方法如下:
8 c; t8 f5 X- l' ?7 X# ]* j1 L8 P/ w2 Z
db.user.find({"age":{"$gte":18,"$lte":25}})0 w0 t& e. n, P" x
9 h% J2 w/ ~9 l8 I8 ]9 B5 h
  `3 {2 o8 L# W: S- n& k

% z1 n& q, b1 a对于日期的条件查询方法:9 d! P0 {, D: s: p

3 }# U5 a- e* q$ |2 @db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})" a+ q; _2 e+ z& L/ ~4 b

2 K0 q, R  q5 U6 N
; o/ b1 u8 f5 W3 r& W: j) S0 B8 X- H0 J5 `/ Y
2) 不等于 $ne/ S* q2 n; Q8 U) O4 J8 o0 i% Y
: L. P$ U0 x6 u& }1 o! N
例子:
1 V1 E: \8 m* s% [; a1 P* f
( L/ I& ^7 c1 p8 Y5 S' f! d% {1 Idb.taobao.find( { age: { $ne : 10} } );
, b# |# _4 a' k# W/ ?% T, v; fphp7 查询mongodb方法大全
) _; V, C* E9 C7 f
游客,如果您要查看本帖隐藏内容请回复

2 ?  F' [. o( {6 q, P8 [# B! G! Z& n5 [5 V' A; y7 `  d* S# f+ {
  I8 ?. j- f" x( J  n3 v3 l' |

+ a3 W6 V; |$ c* [2 E" q1 a5 P7 E  D
  X. I8 D& M- n+ i  T5 b+ z) k
( |! r; k2 q- q) Y0 E
8 z6 `/ G5 E0 ]# W+ d- _; t0 m! v) J8 s* X0 r8 e' a  }4 e

/ I* ?  T/ w" K$ k
/ U7 @3 r/ P3 j9 x: ~8 k6 p0 q( n( L& M
' E) X, b* H8 L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or5 K; P/ X8 G9 Q; d6 o! j
  1. //and
    $ `* Z( [2 T1 W. f
  2. {key1:value1, key2:value2}5 N" j; x' C/ m- O. G3 R8 u4 ^5 y
  3. [key1=>value1, key2=>value2]
    / P! U! o6 Y" g# @. @
  4. //or
复制代码

7 F( H4 \0 f& Y: @3 X' q4 Q0 t8 \& ~! k& z
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 15:13 , Processed in 0.129543 second(s), 19 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!