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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
1 i4 w) Q, g5 n4 t
/ k4 }8 ?" y0 q( n6 kdb.getCollection('student').find({'age':{'$gt':'20'}})( j4 x. C8 v  D6 v$ i9 C3 B8 ]5 r

+ n  w# u# C$ U# z$ M4 E% o( k+ J7 E8 b! U& K6 I. P1 X
( j: x1 p2 j9 g# Z- r7 N  ], S
$lt    <   (less  than )
7 s2 ^3 R4 d( C. U* q" t4 }/ D" F# R: s, X  b; c
$lte    <=  (less than  or equal to )
7 E' V4 L$ [5 ~8 |. V/ I* l5 k, x0 a9 m# G- K
$gt   >    (greater  than )
1 C# }& o& [; W, y- p+ U$ p1 `/ x* }# H, E
$gte   >=    (greater  than or   equal to)4 M9 M- p+ K" p5 C$ o+ m5 I

; A2 r0 V# V6 r$ o2 {0 i' l
游客,如果您要查看本帖隐藏内容请回复
1 ?: l7 s7 i# Z  }
5 N9 J) d3 Q% j7 r$ F
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
+ \9 W. ^) n2 Q+ `! q% O8 x) h$ @9 K
  T2 ^+ s- _3 ~$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list+ i, a! r6 E6 x% Z' x2 O' N! E7 x1 j( d

; d# ^) O0 |: C9 Z5 j/ }$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
7 e' f4 S' s, S# h( i0 ?/ F
3 {# x' @+ d6 w8 H$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
  s% U; E3 `) p* W4 g+ u
; C1 P9 S% b+ Q$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
# M- ^; U7 U8 y4 v5 D# I2 x
  h& H! R9 |; b6 T6 N$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int! X% A/ Z# }5 T+ E; y9 k

5 k: u& A. x  ]4 H; [$ M9 u$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串# h) r& U6 @. Z( j) Q" ]; X
; B, ]' H* Z. Z) j% k
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
- R0 Q+ H& E8 d; I, M1 L1 l$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);5 A7 C0 ?. Q2 @* j6 x, l

+ Q1 ^/ o: Q. J+ ?& [3 i6 a! m$exists 键是否存在   {finaGoalLine:{'$exists':true}}$ c6 o( X2 h1 S3 i. [8 ?* U

6 }3 T1 H) ]( |, O6 C$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
: m; B4 m, I# `; A8 z) M# g7 F- B3 Q, C( h$ [, h! a/ C9 B( V
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],) t6 K, i7 g; [* w; v4 r( D: ?
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
2 Q  ?5 b4 Y6 J1 Q+ n4 J# D+ A& O" x7 ~( G
" F' R! X2 t" T1 J* `( m# J1 R

8 i- l1 a. Y: |8 A; M$ v" s5 w
; K3 v: b- n# `$ l) z# T
: n: x) d& K' d* s$ u' n4 I( ~" s
# c. F+ H0 u  @. a# W& x. V& \/ N

; E, o4 k2 b$ |6 b  {
: w# e& v4 e! A组合使用方法如下:  g; i, k( ~5 Q, ?$ u

7 ^* t7 Y( ?; \2 c  @db.user.find({"age":{"$gte":18,"$lte":25}})  G  N, c9 L3 C/ q. D5 ^" _

0 u) L: A8 }7 z; S% d# c/ r0 [* \$ ?; |/ S0 a! ^

* ?4 b9 F8 a; g: M) e对于日期的条件查询方法:
. W- x5 f/ C# d+ G
6 h2 ?" P0 K( q* `, o% {( L5 Bdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
0 l3 p" ]: J' X
. E- e7 O) N; I% ^) s7 t8 n
, @* ^. Y# A+ Z5 F% a4 g: s
/ J0 X% S9 M* X+ s. L2) 不等于 $ne  r) e1 C4 w" I& O8 m
$ h! J* y3 n& y  q' L8 M
例子:
  d9 `* D- J7 y6 a+ {2 x& {% p/ ]- @& `6 j
db.taobao.find( { age: { $ne : 10} } );
- ?. \8 }4 n2 g6 \) Y6 wphp7 查询mongodb方法大全4 c' [! h, J5 S! q" j
游客,如果您要查看本帖隐藏内容请回复

9 q5 q' Y6 J. H; C$ Y, U- b
  w$ ^0 M* x2 b+ |4 l
7 N! Q2 ^4 H/ \$ C( f0 E9 ~2 p) N  P) {1 s! z) p4 j  l1 d# r

& V* G% u, T- x  j+ a* J( V5 t- y' }# z4 U

: X" H+ y, V( i5 r/ P: E
& G1 P2 L& G" v
1 M4 @8 O" l. i2 @
1 P& N0 U2 D9 X5 N: c$ u9 a8 ?/ q' X- Q7 u
7 n$ Z' A( o/ [0 v% R* U; b& p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
* ^) x* L- t) C3 g
  1. //and$ N! a- A1 v  _3 d8 c" d
  2. {key1:value1, key2:value2}
    / Z* k2 Q  C# L) ?5 b; L3 r
  3. [key1=>value1, key2=>value2]8 S- M8 t% t% S5 j  C# ]( a  j8 s  f
  4. //or
复制代码
% p  G+ G5 f$ h" G' U

& ]% E+ B5 a$ D, P% a5 e
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 15:53 , Processed in 0.065436 second(s), 20 queries .

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