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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:- s7 o& U1 ?; G. d# r
# O* @4 j$ f8 r9 G8 W
db.getCollection('student').find({'age':{'$gt':'20'}})
$ z# s" m; @1 q- a# h( g1 `; ~4 J9 X  u6 D, _

; s6 h3 X% X& u5 N" o( n
' \7 w( a. m% T: L$lt    <   (less  than )
4 G+ h; t. j; x7 K# o) {5 R/ b+ N! V4 E% A& d
$lte    <=  (less than  or equal to )( m, Y# q- i1 D! J/ v2 L
* ^: M: |% m7 f) c: q
$gt   >    (greater  than )" z; t3 X1 |# ?4 U

+ s2 @" H7 r8 m' {$gte   >=    (greater  than or   equal to)
9 @- c0 [8 A/ s+ [  E5 z# X
! P4 c, e- ~; @. g* I7 D) v6 E
游客,如果您要查看本帖隐藏内容请回复

6 \' u) N9 g: ]" \
$ X2 m8 G. `- n2 u# c# J. h$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
" W0 q/ a2 k6 n- _: x6 o5 \4 k# {
( g- M' d4 `5 t7 M3 ]0 d- D( Y$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
* F8 v8 i* V8 |$ r. }" O* ^
& H" `2 i$ D0 |9 |: O* E8 b2 O$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
2 S. B$ p8 T" Q8 j7 |, \7 c2 R/ n3 M4 e. u9 @7 `8 ]
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
" h0 p7 y9 d0 s/ o; {$ C' }
$ K* K' v( M& h: z4 u$ z% ]$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
& {* y" }0 r# d2 k) C
3 e# h' Z: f) B& e4 i% _; [9 K4 `$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
* V+ N, j: [- k) w- T
1 J' q8 h' l" z4 r$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串- i9 ~& [7 W$ U7 ?+ c. J: L& r

; E9 ^9 h7 Z- p- N8 v$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
' u6 e, d6 F  K& A9 @+ m$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
- `6 j1 ~) k# z0 R
8 R! S! H8 m0 ]& D. K$exists 键是否存在   {finaGoalLine:{'$exists':true}}. g) h3 q8 g( J3 T+ `9 z

# B) r& U& v& V$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]+ b; U2 g3 H% e2 Q) l, q5 ]2 p5 F

( _0 l3 T$ U/ b. K7 O; L+ \$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],( C. P" W  ^" E
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 7 r; H0 D6 W* E' G  s# d
' h) |7 Y4 W& \* o0 h5 d: s' s$ B
( f- U& _" t, V- L; N3 ?6 J

' C  J5 s8 {" Q& Z( p9 k

% C0 d. D+ y& j( C/ K- u( U+ L! }4 [$ G3 Z. X& _$ H; f

9 B$ J; S; |. ~& z. ~( ~) Q. @3 j, j$ T  j3 q- Z

# U* x4 d1 I+ X' Q4 _组合使用方法如下:
) C: x8 ~+ @. {% g" z* h4 d' T8 k
db.user.find({"age":{"$gte":18,"$lte":25}})8 N  l  O& k4 g% J3 b

0 U" J9 M) z% s9 A0 X
- W2 ^+ h8 g+ D) ~6 g4 [$ W# ~9 G( G' W1 P$ H8 B& m: ^
对于日期的条件查询方法:
9 t" S+ i; q+ \9 S3 x, d) z4 Y8 p& h2 O! Q
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})5 t. V5 Q) [' Q

' i2 A3 e( Q# P. }, _' v% A# u! d7 {6 f8 z# y) x

: ^1 m/ R4 D; @( m0 _: @; L' g2) 不等于 $ne
. f) O9 _+ N& K+ o5 r( W- C. N
8 W. C  Y0 ?) v4 N, ~: W例子:
. Y) z& ?" H7 ?& ^/ w% t
7 H0 s, Z2 h2 i: b8 P& G4 o) ldb.taobao.find( { age: { $ne : 10} } );
6 X& \7 \  N+ i& o3 Mphp7 查询mongodb方法大全
6 ^/ [: ^2 A& ]0 R% D- P+ E0 d
游客,如果您要查看本帖隐藏内容请回复

: O2 D' S& Y4 V1 F$ |# r6 x. H$ `# X3 x8 e# h" j1 `

4 v( n* N# |( ~+ x! c0 G
4 L; L( e2 \& E% b8 o
0 b0 t) Z  Z: q% |
4 R; s$ l8 l4 d' G! z3 H( L7 ]: B$ S2 i: W& M+ Q- d# [- ?" ^

! W' s% k6 b; o; w
7 L4 Y& _( s) x# d4 G/ M, K  T; l2 L2 ]
. ]; y& V" M0 [: Z) H0 |" D0 |

$ W+ F/ i6 O4 J$ s* G% Q3 i8 B  M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or+ K9 a! r( ~3 q/ Y7 U# l2 Y4 R  K
  1. //and* C% c0 Z3 d! s' c1 H9 x; r
  2. {key1:value1, key2:value2}# c% T! I& B2 V9 w, j" k
  3. [key1=>value1, key2=>value2]
    + s$ g! u+ e- K; p3 y
  4. //or
复制代码

& n0 }' R9 j! j8 _) X
+ B, n/ v% d: `4 y! {; }9 q+ }/ A
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 10:53 , Processed in 0.056641 second(s), 18 queries .

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