设为首页收藏本站| vip购买 |

cncml手绘网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1200|回复: 2

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

[复制链接]
发表于 2019-5-10 15:00:08 | 显示全部楼层 |阅读模式
查询表中学生年级大于20,如下:
; W9 [: x3 M6 j3 D5 i' n
# r& F/ ?: o3 V7 Q1 S4 }" Jdb.getCollection('student').find({'age':{'$gt':'20'}})
3 Z0 i9 {& ^0 E5 g3 G6 b) I
3 b! b. I7 H0 e: l/ X- I- b* a' l, U' O; i" u, t- Z, M6 C1 h

8 Z' i% b" `2 J$lt    <   (less  than ). U. o7 B6 \6 U

# M# y. a) a1 T7 z% d1 s+ o- @$lte    <=  (less than  or equal to )
) Q- P2 X. O/ ]& `( M$ i/ x
& b2 d8 D) m% O$gt   >    (greater  than )$ S- N8 h! j$ V. R" S- C
8 E3 c( b, S" Y
$gte   >=    (greater  than or   equal to)9 i" w. q8 n5 Z9 }$ ?6 V1 ^! h& S
9 M! l' ~& m7 Y3 ~" D! I4 f! r5 ?
游客,如果您要查看本帖隐藏内容请回复
; R$ f: J& u' c) Y4 }0 O- O! O
0 W! b: J; u! N  B6 N
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}6 Q. e: [/ W' M1 U! I# c4 x

& P$ V0 [/ V, q$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
. m6 u* j* F( L9 k$ ^1 ~7 K5 U. m2 L# N1 m
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
" H1 H' K/ o4 ?0 x. e: h! m* U  j4 g. e# o4 B1 C9 k9 t* ^9 d
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
* R# Q% u( e  m# z, S' q6 @! e9 G+ m8 d2 l/ |  A1 D$ g! b
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
& ~; i  ~% n3 v8 q9 m' ~3 I
' _+ G2 i# J" N' o$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int4 O" i9 L) N, h
, f* C2 a) u& s
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串0 V7 V2 F0 q* F6 m9 @

0 q( T4 \' Q+ I+ N! U$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
/ Y& j! `: {# e# y& J$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);! m7 J7 k8 _7 }% [$ J, l
! Y4 k/ n2 m9 n
$exists 键是否存在   {finaGoalLine:{'$exists':true}}
# ?7 P8 O" H5 d
6 \: |( Z2 L( I  I. O0 ^" _% O$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
7 }9 }. }$ n" n( O! F4 y4 Z6 c& O, g6 ^  S! ?9 R" P
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
2 j* f9 L; p1 t$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
) \$ k. b9 k. Y& o' n# L
4 m& L2 p5 T9 g' V9 t! Y

% D2 F% G# T3 Q. i+ e
* k  j5 d2 [0 B

8 x) l) j8 D0 y  k1 [4 Q3 q& x& y% u$ C6 A5 A

, d" D3 Z' g' M2 h5 q5 t! c9 B4 S, {$ v) e. S% h: o
9 p5 s' X& g, b8 ~2 b' s+ v, Y
组合使用方法如下:
7 l9 U* x' W0 F7 ?  R7 ~5 Q; {/ r. P6 g* ~. f% L+ N
db.user.find({"age":{"$gte":18,"$lte":25}})
& l0 P; v5 X1 v! `( y  i
' W9 K) A9 T0 t; ]' p7 s9 x. l7 l, ^: `3 ~3 w% G1 P
9 s5 F2 d1 T0 q) e/ z
对于日期的条件查询方法:8 E3 s. T6 A6 {/ a' V
# u5 E8 t; O  J1 e
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})$ h5 \+ J1 b5 E% i* Y

7 v; D8 e7 |: X3 i
7 T( F! z& U7 \# j, j/ K/ v' T2 |* T2 }. w! }0 U$ @. \0 A* X
2) 不等于 $ne$ l: M$ c# X8 Z' ~% |! e
0 X3 [% l+ m% [3 ~
例子:
! D3 L8 a% S" G( e/ o- l: A4 _: S) p) C" t1 {9 f$ Z
db.taobao.find( { age: { $ne : 10} } );# z) n4 Q, N, M+ k
php7 查询mongodb方法大全1 J3 }3 s. a, u& [+ M6 j0 K6 s
游客,如果您要查看本帖隐藏内容请回复

6 I  Y! k: ]* G8 L; [& s
+ y+ V1 ~4 N( ]+ P
$ |/ c0 D' n8 h4 I% h" k- N( T; `7 x+ {/ j- Z  K( e1 t

  S: @# H$ k/ k" [% f
) [4 T% K6 U; C% f1 H6 I! L. n3 `2 a
( H! a, Z* I3 e% u% T6 T7 P
5 h- s: @9 D5 l- e9 i  O/ l8 T; {4 h2 }3 P, N% R1 W1 c* b2 W

2 A6 t. a2 f1 p& n$ _/ d
+ O8 b5 W& x. y/ w# m& }6 e% F6 `
7 Q$ A6 _! L/ W- G
 楼主| 发表于 2019-5-15 11:52:22 | 显示全部楼层
查询中的 and or9 z+ t; U" C+ V
  1. //and
    % X  f; F7 q. Q1 C. t; [6 H( d
  2. {key1:value1, key2:value2}
    . _9 ]$ ^2 Z1 p' o& z- E
  3. [key1=>value1, key2=>value2]
    , m' y" W4 y3 d: G, D# ^) `
  4. //or
复制代码

. e  R! J5 c5 U( q( U+ T
! ]4 O; o( n: i! |+ p
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-16 15:39:54 | 显示全部楼层
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

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

本版积分规则