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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
查询表中学生年级大于20,如下:
3 a3 R8 w) R- u( c
0 R- Z& E7 {  `! c. n5 k6 D5 Mdb.getCollection('student').find({'age':{'$gt':'20'}})7 W9 u' @$ M. Q

9 K# l; a2 `6 W2 k4 U, f/ ^2 d) O( H. z7 t+ l' M

. D/ P, @& q5 V$ K- j' V% Y$lt    <   (less  than )  P7 i) \- ?- i/ t0 E* @

; G& x, c% H5 j% V' V$lte    <=  (less than  or equal to )
. B) W$ E2 ~3 ]- y9 L
7 w  ~9 o5 p8 c. I$gt   >    (greater  than )
. L; `" F# W- W/ V0 d
/ D% N) w9 o4 O, U5 D$gte   >=    (greater  than or   equal to)
# v& C) b" \2 }% ^) ^" x/ |6 D; x. K
游客,如果您要查看本帖隐藏内容请回复

) U* T/ i6 {3 a* p4 V9 X
: J+ q) a9 q# J3 w2 ^$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
! Z, I2 x* b3 `! M: _+ r1 Z; x' O. t3 W, G/ W# ]1 Q1 y4 Q$ i
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
  ?+ S2 i/ t" m/ c$ I
/ P3 ?7 ]" o4 V$ \/ X1 u0 z1 J! Z4 u$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list* y+ A/ K$ o4 @  t5 ~& k

' K$ }* q7 g, i$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
2 i  V. U0 n$ v: x! j7 S8 f; T2 q/ x9 D7 J. a
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
% m' P0 o$ K' a" V& |4 g* m% z# L7 ^# A( @# C
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int" h: S* u# ^  |! B/ B+ q
7 Z' B$ d, A; C2 q' M2 a0 e+ v
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
+ b' J$ R0 A5 Q3 z# a$ B1 ]: X! ]2 x% E: z5 k: g6 a
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})( }9 g' E; j/ u+ k! s/ d4 s7 |  L
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);0 {  w3 [% ~2 Z7 g7 }1 O2 Q

6 a! v' p6 D( a+ Y0 k$exists 键是否存在   {finaGoalLine:{'$exists':true}}
6 r0 U/ {; `- {2 X* i' K
, I+ _" D* _: [" A( p" a$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
* |* v* d- d, C; V2 s2 Z5 d( P9 V1 G6 s1 z9 M. e! ?3 |' Y# `* y7 S
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
: t. f" R: r7 u" v* {+ F$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ) p1 B" y5 P% l) A) q' M
( `7 _# @$ i2 F% S) F% G/ f
- ]6 u  P  X! I/ H" w! _

/ j* U3 Q8 ]5 `+ U2 }! y8 a
# ]* p% W$ y7 E7 Q: ~5 _
5 E0 X2 M' A, B  e4 D. \( D; |) q

% e! O/ K0 o0 q! N! R
: z* ?/ h! t+ o8 e/ r, G; e8 @0 M2 S. N# i, H% J6 `
组合使用方法如下:! B0 a# b5 X* |# p4 Z
* A. [$ B8 j1 Q# P
db.user.find({"age":{"$gte":18,"$lte":25}})5 F8 S4 V! E1 I' H" V

) x' C, e8 ~/ J  d
- o# a( i7 T1 j6 b/ P+ Y* e
/ b4 z' ], V; A' u& Y  y对于日期的条件查询方法:
0 L/ b# \5 v1 G% o0 S/ m# Q. c$ M1 ?, i! y) k$ M8 C* Z' G
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
$ ]5 [. r) ~$ z' ^# T, g
- I, K9 z. t" `/ f9 o$ x5 R+ d9 O5 {' h3 S6 F
1 N2 h1 j* q$ Z! z
2) 不等于 $ne
% R& Q" v) U5 ]8 X2 @! {6 [- Y+ d- q+ V4 Z
例子:9 M! B4 y/ ?( G9 t! s" F1 _

5 d5 T6 n  ?7 _" u, Zdb.taobao.find( { age: { $ne : 10} } );
, d6 A% x0 \  N7 B( V0 iphp7 查询mongodb方法大全
( O7 m# \: a/ ?* D+ }5 ^$ G( ^
游客,如果您要查看本帖隐藏内容请回复

' a% J/ t- r; Z+ @, x
, c& S' k5 X4 p' D& I% L) y# U: l) {' P2 `# p
6 a2 U, S- a: A4 u/ t7 n

# g+ c$ Y) Y( h( M8 \
; `; I( l) m/ e, K4 k8 Y) k6 y
) d. r* T7 w) P9 k5 \
! |; O: I3 o6 C  x7 Y9 F! f2 q7 r: k, h# V) N- s# Z

3 V9 r% s/ O' ]; I! Y6 N. m% N4 y! i( }" \4 L( _

% k  O) H" U% Y4 e8 D* B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
& @0 |; }! W0 n  y7 O8 {
  1. //and
    # \1 I0 Q% P) n1 M
  2. {key1:value1, key2:value2}
    $ k5 J0 ]5 K& ~8 R- V% w/ b
  3. [key1=>value1, key2=>value2], i$ k& ]1 H1 L: l+ B
  4. //or
复制代码
( y, d+ F4 q5 F- a- \

/ c: ~5 V+ T& F/ K* q' `5 g
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-20 04:17 , Processed in 0.070267 second(s), 19 queries .

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