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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
& i6 K: o9 G7 {7 k+ H/ a( j! G* }" \
db.getCollection('student').find({'age':{'$gt':'20'}})1 _+ h* w7 Z5 w! A, E, v) x0 I
  W% z4 W$ p5 j4 @4 B1 ]* t/ W$ P; w
$ [+ w- y; ]  R' E  s
6 M* F# n2 d0 G: ^, m# p
$lt    <   (less  than )
) k. \0 @$ Z+ O% ~! G* y& B$ p1 v: C# g" C1 R$ ~' ~, n* W* g
$lte    <=  (less than  or equal to )7 _9 L1 X! z, A

/ a) X& w% |4 I' \$gt   >    (greater  than ): G% N6 |( ~9 ^
+ {) G% q5 n. L% m/ F7 S
$gte   >=    (greater  than or   equal to)( A8 @) B. k. S6 _- @. g+ A+ _' a
! z) O# o. m5 k$ o8 U& ~
游客,如果您要查看本帖隐藏内容请回复
+ ]% T( T# n, X$ k* Y1 y

) {' ~* u1 e2 R0 ~/ b2 ~$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
$ ^: L! X- W) ?% q; L# }4 k8 \# z) N6 T
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list; u% I" ^1 v/ m9 `
0 r! ?' a7 n5 s& ?
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list) k! V4 h4 Y& Y" M6 b
) n  S( Z  g- W' o
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字# q& I! @/ ~, J- A

1 Q! T3 V& `! [, H- v0 u2 o6 s! ^$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在' ~8 v* y- p: @, q) M, S

$ d% \1 A% R0 Z3 e$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int9 }- O. W* s% S6 o/ _" b/ x
2 p: d: l" |* x& B
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
1 V# a8 j/ Z0 L; Z6 j; r. m+ v' {
3 d& h, h( Q1 L& _( I) d& ?4 }+ P; A$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})% H4 M* o7 R& W. }, l2 ?
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
) o' ?9 O( V! s; `0 r
  B6 A* B5 ^2 K$exists 键是否存在   {finaGoalLine:{'$exists':true}}0 P& x8 Z9 t8 q+ @8 `

8 p9 u: v: j3 E  e3 j$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
1 I, a1 g$ H  |, g1 Z6 E; _5 k2 i0 E  \2 l  K/ P% W
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
" o3 W8 H. B4 }5 i, H8 j9 r, C$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 * B: t4 |" ]2 i2 e) Y+ V2 s9 s' r) Z
, p8 G$ [0 F8 l/ q0 p4 V4 ~  u
2 ^% W; S8 i; h9 E3 B9 I
  G, V8 v, i& I  q0 q. }

& D# }( \( n) r/ Y8 Q: V% o% a+ l/ u9 \3 c, z
: j& X& M& F, j# ^

# ^& \! a! r2 C
2 ^& d( |% W5 y5 B组合使用方法如下:7 w4 a' G: N% `7 g6 f; s

4 i7 E3 i/ H! {( N7 p! B" Ldb.user.find({"age":{"$gte":18,"$lte":25}})
  l& C) N5 X8 |  x0 W# A2 q% G% N$ m4 c5 W: L

4 m( o. c/ g; I# {1 ]; p0 z1 P2 ]+ @7 p3 [
对于日期的条件查询方法:
) w2 B) }. O" `' O2 j/ a- j  u
& L4 K  v& Z8 ?9 C; X* ^* w, @db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
- j& E( _9 ^! S; @1 {
) g3 C9 V4 m; [/ b* P( ^3 a! h$ V6 ^2 [2 x. a5 V9 P/ D( t$ F

, k4 B8 B  c( E8 W% c2) 不等于 $ne/ q) R$ t* e5 h2 _% v4 w3 c
1 C) R# }9 w0 r
例子:: E' I& P1 s( U; K
" i% a: v& f" f
db.taobao.find( { age: { $ne : 10} } );
1 ^9 Z) e( M* C: Mphp7 查询mongodb方法大全: m* z6 _" U' X! C0 \9 K
游客,如果您要查看本帖隐藏内容请回复
2 @- C4 P: m: h3 e* H# J

* ~* g- {7 M8 ~) ]6 V9 [7 k( F# `( j2 c: J; s# F. L: c4 ^
* @% N  }/ l, Z. ]3 M! a
1 R# u: i' i. p4 I2 B: Y3 i

) y' m3 w3 C$ t" {3 Y- f
' t. C. q6 T* p/ W. z3 {. v% R- _/ y
0 d; ]0 K2 v  U1 }, Z1 r9 r5 J; a4 h+ H

# n" `4 b: G8 B- E
0 k5 o7 I; {2 n1 x2 [/ B; S- h* z2 }. A+ f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or, U9 ~% U! ^2 s$ N& e
  1. //and
    4 A2 P: P% i1 G# j: C4 Y) Y! k6 l) y- Y
  2. {key1:value1, key2:value2}; S( {0 [  }- ?* u
  3. [key1=>value1, key2=>value2]
    9 Z+ q9 Y3 m% |& j& j. C7 M, {0 f
  4. //or
复制代码

  g" i5 |+ X7 s. |- F/ U2 |7 P3 r
: |' j  a8 j& ?$ K& h
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-19 17:31 , Processed in 0.119293 second(s), 18 queries .

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