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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
查询表中学生年级大于20,如下:
# B# i: h. _5 \& Y" ?  t, }7 ]5 X1 e0 a  p
db.getCollection('student').find({'age':{'$gt':'20'}})
) s+ F7 E; U2 O( X7 ]3 I& \# f0 N- T2 j  j
3 L' o& x+ T7 ~, O
5 {6 a6 q9 \* x6 T% ?
$lt    <   (less  than )
% x/ j# X4 x# H8 u" L) z% [, T1 A7 D: N; U+ R! z. Y
$lte    <=  (less than  or equal to )- R% J+ N$ H# M+ s: a+ b4 }8 I

1 @& c: V; r5 q$gt   >    (greater  than )5 b( ~* I' i( a9 H) r4 y. n: ]

9 @' T( {9 n8 y8 y" b/ m# ~( c$gte   >=    (greater  than or   equal to)" r4 v& T# E- U

6 j% m7 {  }0 \! H9 d" x# ^
游客,如果您要查看本帖隐藏内容请回复

, v$ l, u9 K% D! O' l$ i) f, d5 f$ j9 r$ q
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}( A5 p& w" _/ K2 V* I+ x) l$ r, G

( j: j* t9 H( F& C4 E+ T% s$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
' s9 l4 H, I8 i
: `/ J  M" n# c  r" ]' E$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
; r! w: z, w; ^( E$ C( {
2 S3 \( d; G5 O0 H$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
# O$ H- F2 p' u) v. M; m& S2 F6 B. L" l+ ]) N" H6 A! \" f; V2 b
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
" b7 b7 m  v9 L; n+ x$ {& ~3 m% g9 Q! ^7 j6 S! I  I% R) e
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int, \$ F9 b7 x8 h( ~, ~+ d# Q+ K( I

- M" |- g+ Y0 Q9 w1 K6 s, z  q$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
" f' |' T* Y1 I+ g& T% Z% L6 C* T+ U( K3 O6 i  g
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
* M4 H* A1 o- B5 [# M$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
" K2 n- [+ j. B# w) [3 ?0 j; W4 g
$exists 键是否存在   {finaGoalLine:{'$exists':true}}0 N+ o7 e# O6 w

3 q( ]4 L% K1 T- E% m2 @+ t$ ^) b% x$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]3 o# S; s: A7 V
( J% K6 y0 b+ D1 I: ~* \
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],/ g* s5 I& L  P6 E. U. S
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
% z' r+ X' ]& w* ?) c/ Z+ D% x( ^3 W) H  \0 E

( @; _/ r, h' v- r" N, h- [/ Z+ y- N( Q3 h' Y, V7 w

1 }. I! s$ G! T7 }- @' t7 x0 g) ]6 ]2 u' f

; {+ H8 C6 K) ^0 X" H' k( }$ v. R: v. Q! Y

  {( {$ C7 Q0 E8 Z: h组合使用方法如下:, E; Q5 k: a3 @8 T. E
* e3 I7 ^% T0 k6 e4 {2 ?
db.user.find({"age":{"$gte":18,"$lte":25}})% f9 t7 {& V" l1 F3 n3 w

* H" T0 Q& N8 M" o' p
, z3 q0 C4 o, {; [. B9 F
: ^7 ]: Q6 ^1 F% s+ Y* u. [( |6 z对于日期的条件查询方法:* k, z  A+ D7 M/ B  X0 U

) M: W  T  i7 r, ]; r- |db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
) k1 z$ j( L$ {3 J$ }& X7 x: }& c- M4 R4 X# w
" A) }) W/ b. l# l) T
3 H9 k6 ^0 K* d8 D  t" z) O
2) 不等于 $ne/ j3 _; k! T* H3 \0 {) p

) [+ C9 O) w2 Y0 B例子:
- p5 {+ w2 N+ I5 t& }; M$ J
+ `: d. L7 w" w' X) xdb.taobao.find( { age: { $ne : 10} } );8 B% a  k) B% B. p
php7 查询mongodb方法大全" t' ~: y: \0 [* @9 g
游客,如果您要查看本帖隐藏内容请回复
& d7 o, r  w- m% K* U8 v

+ a: A! d- v% e/ s7 h
5 x& j. S4 u5 x1 n8 x& X' t5 v- C! C; k  @! f

, F' s: q3 o) d0 x! N% f- I. }" E, H  f

4 g  z) t0 L9 i7 x/ {9 R4 H: b6 C
! V8 R2 y8 r7 ?4 Y4 E3 i  A7 q4 F+ R5 x; t8 P) }

5 E. h7 M% @* I& ^# B4 U
3 ?2 L+ b' N; R/ w& X- i
2 V4 v( X: n' [, ^' x. T3 P0 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
7 m& H/ o$ I( N
  1. //and
      \% b0 n* ^1 x+ @& `1 {2 ^" ~
  2. {key1:value1, key2:value2}
    3 s  x3 ~! c1 S5 f. n. J: Z
  3. [key1=>value1, key2=>value2]# j% @" E# u; O- z
  4. //or
复制代码

' P2 c4 V4 N! F* K1 t5 B" n. @; e; i5 ~  k
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 23:58 , Processed in 0.052239 second(s), 19 queries .

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