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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
( P' Y' I' J7 k! y" E  n
  m( S- W9 V' L2 ]" rdb.getCollection('student').find({'age':{'$gt':'20'}})" P6 v% D" M1 }3 w) i- y9 O

4 P' H5 a7 K. T7 W1 p
0 u- f: V/ c, P$ K- k: y6 P0 e  I) J7 b( ~
$lt    <   (less  than )$ C- Q6 W. m( _/ W& s8 @4 k

( g& Z( O2 f3 \- y6 O$lte    <=  (less than  or equal to )( ~* l; G- b* d5 a) ~
8 {9 z8 u3 g3 s) p* d6 X9 N- k$ Y
$gt   >    (greater  than )4 V! C* v& }4 T) [, d, X

: D1 g$ y5 v! D$ L! v/ Z& B/ S! X$gte   >=    (greater  than or   equal to)
- [* Y5 ]- b8 P# B( Y4 w; g. r# N; o9 o5 |3 b. v5 _: G
游客,如果您要查看本帖隐藏内容请回复
$ m: V! }  x; C6 u- N8 P7 X* I6 X
! y' `; w, @; |7 s
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}1 N( n  ^' f* z( o6 E( ~
3 H0 q, |% F1 W: Q
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list4 u" M1 L/ @! V4 o3 N7 a. ]& ^

* w4 \0 C4 f0 M. T, Z$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list/ W9 y4 O9 _9 H# X& K. r

; l0 ~' w4 d# B1 z$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
7 U. m" O: X9 L& m! x1 Z! j' w9 }% w: m) y# s& X) G* A
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在  |2 ]. h% F1 p) ]$ E" d
5 w/ M* c* p% \$ X7 f2 t
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int% J1 C9 a. L) ]! k& w7 Q% ?( @' o

$ t" @! `5 D: F4 p4 Y$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串; r6 c6 t" L3 l, \6 d

; c; O2 J+ k. e9 \4 B* N2 q$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
' a4 _( x* ^* _' Y7 y/ R% q, ]$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);, q' i' O- j: y
, @  I; d% @# U/ e
$exists 键是否存在   {finaGoalLine:{'$exists':true}}  |: s2 N1 v9 C1 U5 X+ m2 n9 s( l
3 x+ l* C9 T- ]; J9 Z
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
3 n% s- x& G5 X2 c
: z6 m' Y. P& v& e+ n* N$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],/ R. K* t( }# p. B1 q0 B9 r. _
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
. @" P- }2 H; T- ?) H; ~4 g, I+ m+ m0 P, u# U# I

9 V. H: R9 w! c* g
( V7 o% w0 d# |* b' X( Q- A

  x7 ?( u) T$ ?1 e1 W' S+ a1 [+ G( n3 b- |
- o- L% t9 A4 ]- |0 a8 Y7 B

) A8 [) y# J  c8 J( [  e5 ^7 ^) a
4 n* |+ O: B* C( y: o" L组合使用方法如下:
: v$ m- V% H9 a* a- r/ X6 b
, \$ g2 v, Y3 f. zdb.user.find({"age":{"$gte":18,"$lte":25}})
; E( {* e& O- q: o! E( d3 Q9 z
8 J4 v% g+ I( g' @0 i8 J: a0 ]" H. O% K- |  W# m/ S5 ?- d. G

3 X( [) a# z+ ~: e对于日期的条件查询方法:
6 V" r0 O3 Q& A# t' h* _* k* d) }8 U/ x- v' g" K
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})+ x5 D/ E5 h" J
6 c( n" Q/ I+ J
) a, g, f2 B. @+ L
& Y& y8 F6 s& [
2) 不等于 $ne
- Q. F# x# U( N  b& ^# i
4 X+ o1 m* w& P. Y例子:
7 a$ W3 V4 z& ~# n$ ]% R
7 `- ]- }5 _7 V+ `. B# [db.taobao.find( { age: { $ne : 10} } );) f, k1 |6 z! q0 a$ q
php7 查询mongodb方法大全1 z  O. w; S  J
游客,如果您要查看本帖隐藏内容请回复

" W8 g/ A: D' m+ Q; B: `' O
; s# Y. V8 O6 H% E4 W+ G! i  y# ^7 K0 z& }1 u

0 P+ |& r$ G7 p/ c, \! [/ N! s: A+ x
" L7 N+ q- V5 Z: ?
! d6 }" a1 e6 E8 K8 O+ @( c
/ b- @1 ^  W& c9 x$ Z1 i! m. L  J: V

4 w0 e5 K) H5 o' x8 {. n! F" |6 c3 F! P2 V
6 M$ m# k+ t% m* M' P4 t
3 h/ o! F; H* _8 W7 N) r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
0 m+ d  Z3 [2 _7 F) i
  1. //and1 S: g! ~- T/ k, W/ P" \4 J+ p6 @' `: f
  2. {key1:value1, key2:value2}
    8 c. |1 X& Y1 d, _# E1 p5 L
  3. [key1=>value1, key2=>value2]" \# C3 Y; x/ X9 f) \/ j! F
  4. //or
复制代码

/ J2 C. \7 T) m$ ^& Y4 X  ]  y
+ n0 t- h/ y2 D+ M7 d- H
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 18:11 , Processed in 0.063283 second(s), 19 queries .

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