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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
! K; j; n- b3 J1 w! o, J3 P7 j' v8 j" C5 ^
db.getCollection('student').find({'age':{'$gt':'20'}}), g+ ?5 v) I  n2 ]

* e7 y. S  O6 V, @# Y" f# c
9 y5 P4 N* O2 D" A( l* _3 q0 D) Y& p/ j. w$ }; G+ L
$lt    <   (less  than )
7 y2 b; Q8 T+ K" t) F6 V! H. b' K' |9 v% }
$lte    <=  (less than  or equal to )9 L# U+ I  g/ \7 v
0 p! \0 [% R! e! }# _
$gt   >    (greater  than )$ E3 B, F; G% d6 P3 J9 A
, ~5 d$ }! P: L
$gte   >=    (greater  than or   equal to). B$ W+ Q$ \1 I9 W; F" d* j
7 m" h3 @' h. [# \+ P
游客,如果您要查看本帖隐藏内容请回复
' H: U3 ?. h2 k6 J+ Y; n
3 o" X) o& d; Z7 D( r
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
. M" ]7 I0 K. w- Z( ~1 [4 ?6 s1 @
' g' [$ V( V4 a/ [/ _  ]$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list) b9 \, ^5 Z" ]+ F/ L2 m! B) N

+ q6 y( U! [- \9 T3 l, `$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list8 f9 e7 r3 n6 A0 \( V5 {) h8 i

; o7 h6 {: Z8 K$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字/ e. H' z( _8 k. o) v7 U) m$ O( S
2 M+ C/ L4 K$ M" R
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
* ]6 A3 H) Z  M! F# a9 s2 @$ d- L1 |* \
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
$ C% y, E  L) m6 T
% n' k4 `' m. @2 J5 R$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
# }9 U2 Z& M. K$ _/ a! A) a6 H
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
# J3 }1 p1 \1 L$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
1 C* }  E4 Y$ s4 H/ l, f1 {8 I. p0 R
- P4 J" _/ L, t  O, S9 o$exists 键是否存在   {finaGoalLine:{'$exists':true}}3 v! t( x8 _7 R& x

! r6 g  k  C; q+ O$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
" n' R# [" \* q% s
3 G- U; [) }4 ?5 ]3 _5 ^$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],4 r$ u" w6 v3 A6 R/ ^
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 2 D# c! D6 ~8 v' I5 A8 D# k6 }, `
7 l# i4 |$ B! ~: i5 q" Z

6 ~' @% t. d- t0 |1 `: f; E" v! ^3 i0 V5 h

) G  F0 I) L* q$ N1 I
  U6 ]6 }$ K) g. i5 m" h
; H2 h: Q) A. c9 K' ?' }

4 G  O, Z% j0 I4 s
9 \, I/ Q9 \& n5 P% r组合使用方法如下:2 {! w3 i9 l2 g) K* Y7 {- a; f

9 v' |" L! i7 J" x) O. V$ j2 Odb.user.find({"age":{"$gte":18,"$lte":25}})
& R9 ^5 ?) Z! M
1 C# y9 l! f8 y, @7 h
, y7 W& ]0 b* {* p& U3 e9 |/ F
$ l5 X$ P' l' ^* \; R对于日期的条件查询方法:; F' ^; ?2 O4 \) C6 ~2 w8 h

: ^# r# z0 I* {- Vdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
7 M) y' q7 m5 C4 n1 Z: R9 O7 @6 L" M- d

- S3 Z6 N+ O. I( S+ \' E) x- L  R0 U8 `# q4 Q
2) 不等于 $ne
- V# u" ^4 y; \. M% f7 M* ?: N5 q$ k, H* I& j
例子:
2 B) }1 J7 `( X! `) d# T" c! X9 p; A# W# c: y2 @
db.taobao.find( { age: { $ne : 10} } );8 M! z2 }1 @+ M+ f+ B& y5 d
php7 查询mongodb方法大全9 C0 `0 i! l: P4 ]
游客,如果您要查看本帖隐藏内容请回复

$ g3 g, S' c, ?# o( S0 Q5 Y+ E/ L; c) E5 i
8 j& K) g" W' h: G; l2 q8 c
5 L- v3 f/ `& v- f) J1 I5 ^2 c) _
/ p9 q0 E2 Q8 z* F

9 I- B: j8 I0 I: ]( q5 U# y: T; z2 \& U3 S2 N
4 @6 M& I  z* h/ m* x' P# ^

, `* @5 h( H; R5 Z% Q: R7 \) D0 w3 h% Y' u  E, e

* ~9 t, Y0 b4 A5 g# s8 Z( B' D0 W
4 E4 Y& g! P: D! a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or  @; t7 p! `( Z$ g; m
  1. //and) `/ I8 @% [& j' k
  2. {key1:value1, key2:value2}- g) \, n& c  w8 x5 `. i
  3. [key1=>value1, key2=>value2]
    # {! ^1 L" n  O8 H1 b- P
  4. //or
复制代码
9 L3 q& l- I+ h- a3 ?) c; R

9 z& v' @" C4 O$ C- j6 f4 e/ Y
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 20:25 , Processed in 0.117010 second(s), 18 queries .

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