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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
查询表中学生年级大于20,如下:8 r5 P- _: h+ O- j

2 P7 L0 J3 J( ~- j, t# s9 {db.getCollection('student').find({'age':{'$gt':'20'}})
* o. ?# s8 s2 M. B) P/ t$ W  U) b2 j4 F+ `+ P- M" U
& M1 \  \. d4 q( _$ P1 l& ]
. n8 y5 {$ \! C
$lt    <   (less  than )
& A3 M. @. I* S8 w' y: X& q. @5 b9 E
$lte    <=  (less than  or equal to )
! V$ L7 O+ c7 v. p7 I- Q# F- a5 A* V
$gt   >    (greater  than )
! u2 V  f, ~$ m: V3 D
# D0 I7 K. ?4 ~1 x: |5 t$gte   >=    (greater  than or   equal to)9 g- q% f5 I6 y: X1 ?3 B% }6 w
9 o; f1 U# h$ s" {8 o
游客,如果您要查看本帖隐藏内容请回复

4 m3 Y# h; f" i5 b8 w$ m" N: N0 F0 o* F
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
6 `5 `  t6 |# w+ w7 p2 s' {9 U2 j' w0 E8 q% P
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list- {0 E. H, h( a* C- j4 G

3 F2 _7 ^1 h5 f3 S6 [) J( M$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list( o+ ~- n" J9 [: ]  U. f3 f+ n

. O8 p/ n# F7 s' c$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字  g6 K7 G/ R/ A* e
7 S5 J. R; O2 v, P# `5 _
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在( Z: |! M& [# O- [. W% W6 f- J/ C0 \
- e: b5 d/ @# G4 ]+ ?/ @; Q
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int. c/ t+ I* D' h! \6 Y& t! t

* k+ m9 z$ t1 c* i$ @1 K+ Y  g! W7 h2 e$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串9 \7 W2 ~. O8 p& w% o( A0 @
1 D8 r* G% }9 B" K/ E- S
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})1 N7 }( f, y- h# k+ g
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
" R: ?1 ?8 u! r, ]. k
  k% i$ t1 r4 b7 e0 f1 ^! v$exists 键是否存在   {finaGoalLine:{'$exists':true}}) k) p7 C! D$ M) P9 {

, x; z9 P+ I* @3 M/ A$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]/ C# q) T" F* o( a2 b" s8 y( x& E
  J; J; ?6 G9 }/ v0 M  i
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
2 k/ t4 s* r2 x& L$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
+ {) I, m! A# Q9 I$ Y- _3 @) p$ r" V! J( f! s

  Y0 m1 [! t- A$ ^9 z9 u* k. l9 E
, F9 f2 O, o, t3 E$ R

) q2 D' L, M/ z8 o1 s
4 ~, @+ K4 g" F5 f
) x& r2 Z# @# }1 V, q

6 f+ q! m" t. s$ ^7 F
/ E! c/ x# e  a& v! X. I组合使用方法如下:
; Q0 y% J  w  d1 h( D
# X* G( _! s/ Fdb.user.find({"age":{"$gte":18,"$lte":25}})
& E* }# a/ [; G( c' u3 w* ?5 m1 w
( {6 n: h& C. e* S6 b$ b8 x
1 P. Y4 o0 y. d& [* i0 e9 b
1 \. D; Z! |9 @对于日期的条件查询方法:  }8 @$ b9 C: S# e" s

  P: A  u5 g5 T9 Rdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
8 D+ j: `* A" H& P" n  ]
: N4 z6 o* J5 N3 o7 i
7 N5 ?. o7 ]/ m! U! s# H' Y3 r; j* F/ I$ t' R& x
2) 不等于 $ne* J6 c3 r1 y( D6 h2 C% M1 @
/ k( q/ o3 _+ l5 i8 e- k3 M
例子:
' D  v; [5 G! V1 _8 w/ y  m/ ^/ b  ?. d/ U$ o/ v5 r* `
db.taobao.find( { age: { $ne : 10} } );: N" \& o# ~, i, a4 f
php7 查询mongodb方法大全( O* p9 I& c5 j9 F+ u
游客,如果您要查看本帖隐藏内容请回复

/ ~$ c- n( Y) b. x; O: J% ~' E" b2 ]" a5 f9 H. r+ `  ~
( @' e3 w! b  P, X0 l8 I0 D

2 M9 x; X( p* o$ c( w
+ {8 y( y  W3 P$ p8 N& [8 O/ \3 Q/ S+ w3 G+ ^, ^: s5 x3 D

9 W/ U" A$ J7 L! i( R+ |. h/ U
' _& f8 l, e: @; Z$ r" D2 \/ G9 Q
; P; n- q$ x: s1 R* U9 I

6 x; p+ i% c3 E) c/ E" R
: f2 }5 Y& y  P2 n" |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or5 E$ M" I! Y( N, z+ {5 w) _
  1. //and
    $ j( b/ M( ?! ?
  2. {key1:value1, key2:value2}; t' b  `; u, @$ e7 z" e6 v
  3. [key1=>value1, key2=>value2]- j: F# J. F4 K% P# |5 M
  4. //or
复制代码

; c0 v5 Z0 a4 q- l4 J1 j
! B1 L4 O8 Z4 ?# _7 Q/ k2 _
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-20 05:40 , Processed in 0.111390 second(s), 19 queries .

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