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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
查询表中学生年级大于20,如下:( x8 `  [+ e* Y& v) q5 F* v

+ G  K, V+ }) c) L" y0 `db.getCollection('student').find({'age':{'$gt':'20'}})7 d' i9 Z& o) x( }) l% V

9 g& H5 U! f. f& g0 q& \6 ^
4 u# g: b6 @+ q
0 s6 z! Z' {9 L& ^, ^: D7 H+ t" W$lt    <   (less  than )
: C6 _$ ^1 R3 P/ _; E1 L5 g* H6 q
$lte    <=  (less than  or equal to )
1 F# ^# P; W3 _, L9 U# k" I$ u: p5 _
$gt   >    (greater  than )
7 c1 p8 n& y3 J2 R( D$ ]4 c- P( L
$gte   >=    (greater  than or   equal to); R( I8 X1 y- ^1 w5 W7 L- A6 _8 g

/ j2 N" j" i, q% `, U7 e
游客,如果您要查看本帖隐藏内容请回复

# [" P, b: Z" G: M  e& D  j* z" u  |; B
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
) _, o+ U; h- z/ M. E& f& H1 U' Y$ X/ _5 m5 d
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list& p1 y# c6 @* m% Y8 m  {  w
+ m# ]6 Q0 p1 Y. U4 J- K
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list, V2 L) l6 _- b
/ f% _% u" V. k. Z7 L  c3 V( o
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
! e: f8 L2 ~. @: X
$ F' B0 f" ^8 y$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
: Y2 F& Y: h" {" P$ k
" w0 Y8 G0 M$ g$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int* D/ b6 ]/ M( l* x0 A2 l

2 @8 v( j0 \, f8 i4 `& t) b( A' N8 {$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串/ s+ o/ i3 _: p; n( b6 b

2 Y. `3 t/ {: @. x2 `4 L6 ?$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
. E. O7 S( P* L* T$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
2 V9 ]: a' K( A/ G; n' n; a- `. m: u. X& @& I
$exists 键是否存在   {finaGoalLine:{'$exists':true}}- }% c, S% h+ l! [
" u1 Z3 u3 s2 T, Q
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
8 J) U# e2 J8 m5 A' e
. ?. q5 e% P/ B4 j  I4 r2 s$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
+ Q: G* H+ W9 b$ M9 b# z* A- I1 ?$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 0 @- b0 \0 X# p7 a

6 ]! c* D0 p6 A2 r" R3 [- |7 Q9 q

  F, c8 h2 d4 v+ q# D/ @* a- R8 ?1 p' D# E& E. P
# i" `2 P! Y) C6 \

. W  Z. d" {1 Z  B; m
& r: F) V: P/ ~# U- G% v
& o% N1 }4 x$ t! p9 l
/ z: f  Q0 Y& r0 C3 b# N
组合使用方法如下:( H+ R0 b, C! Z! P4 K

( R: J. s2 ^/ e7 z7 ?2 o3 bdb.user.find({"age":{"$gte":18,"$lte":25}})
$ f8 M% `7 N( x; M- [& L, @: w& N; @* a) [) @

  {7 [& W3 i6 S" F" r# i) K  _' Q+ x0 G$ C/ O
对于日期的条件查询方法:9 c" j) h' \3 F- |

% }( H5 q  G; z4 o& Adb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})- F0 B8 n, a3 I
% w) z. v+ o- d5 C

2 e& n& T) g& z3 F- v) ~, G. i3 l* N% L' I* m3 ~. A
2) 不等于 $ne
. H. O, ~5 X3 |
( S' f* Z# k2 l% O2 g1 M6 C例子:
: r+ ^5 j9 J9 u4 w5 H6 @# g
- {- ?/ b- m# {. b) adb.taobao.find( { age: { $ne : 10} } );/ ?% A  r4 c+ I6 A. C
php7 查询mongodb方法大全" D3 I% W5 Y" G# w# I1 ?
游客,如果您要查看本帖隐藏内容请回复

6 r- \* B' c2 }5 f5 e' l. a
* q% g1 ~( t9 b. ^. O9 }' B- C! f1 ]5 M4 P

; A8 k& a0 Q; D! x2 ~7 y9 k/ W* ~4 Y% i
: i3 @1 p& Z: O" e% l& u
0 u) c9 J8 z& H& _

" W9 `+ L$ F2 C4 O! b/ I3 q  G/ U* S2 R1 ?# o$ R: \

4 }1 r  X# ]  }  X# L1 _2 b$ ]
8 u9 Y- g$ \0 x& q! ~
$ X, D9 Q5 a! }9 v. r# z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or8 H4 M( `! `: O2 |; u4 S
  1. //and
    4 E, S2 p9 _( t# F/ S+ S( B
  2. {key1:value1, key2:value2}) b; p1 r! q' Z) N; e
  3. [key1=>value1, key2=>value2]
    9 v% B4 v) q# p5 J4 z5 A6 o* [+ @& n
  4. //or
复制代码

! O* V3 k; s' y+ o- |: ^- v; |% S+ k# A7 Y
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-17 20:17 , Processed in 0.075345 second(s), 19 queries .

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