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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
! b1 y9 H6 t8 _  M9 d  z* D  }6 ]0 l; M; B( Q4 N8 r# s9 K) h
db.getCollection('student').find({'age':{'$gt':'20'}})
, K- b8 r  A& B
6 p" S. z- ?* R+ r+ P' n+ b
$ r8 ]7 L% h6 T3 e% G6 b) l! o2 U
$lt    <   (less  than )
  U% b  O; [# Q; H9 U" C% X! J
$ C  e7 q3 g5 Q* I$lte    <=  (less than  or equal to )
" Y0 Q* q7 @- [" j0 C- H6 |
9 k% y! W/ t# K4 r) i7 l+ [; X$gt   >    (greater  than )
- o' x: E+ k. l) S0 [/ \* _' y8 u
$gte   >=    (greater  than or   equal to)8 `7 ^! u+ s$ I) l4 a  ^

1 ~' Q+ h. D! a7 r7 F8 R1 I
游客,如果您要查看本帖隐藏内容请回复
+ W* H6 _% t  _9 x7 ^" ~
& h, i; _" I6 s! U3 \/ f$ V' e
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}, z. R+ M" B4 x; D

% g: R4 h& _4 I- o9 |- ]$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
5 o" ^, S; R/ K8 \& {0 ?
/ M$ [# t$ A: d$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
) \' Q8 D+ D# C% S
4 o3 E: \* N: \/ U1 q# `5 [) V$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字+ Q8 b2 ?: @6 m9 c
, t' q+ [# e; H5 G4 T
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在' b0 n! Z' L" n! ?# y9 G" L% o/ ]

' b; J2 k5 k6 l) O; G$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int' y4 O( b  r  g
, k' L+ r' l- c, a
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串3 l0 s# d: D1 w7 A$ @
& b- o3 }1 f# o+ ~! a
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})8 G$ n5 s  o+ }# N& w7 j# O
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);! t$ p+ ^7 f& p2 Y% _
6 J( O2 F4 F- X/ |0 T* [$ I
$exists 键是否存在   {finaGoalLine:{'$exists':true}}( n- E( L: `) y' K

2 {! Q( j$ t8 R3 M$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]( s5 |. p3 j# r1 h% l% ?: p# t% _

& K6 V- Z% m& ^8 E9 Q$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],. G. W. B7 F& }+ F: j* X
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 + _% H) q  T3 o4 j. Y
# f- ?. r5 {9 q2 x. E: G1 M0 A

2 t. }- e% O6 e; R: g& D- }8 E
- c; H1 w* k0 j( c5 V6 u$ S

( q/ s  K0 A9 ]% @% x
0 o, p- K( Z1 D. Y2 z

. W0 S0 H* e5 q) x$ u$ ?
/ L. x  P4 @6 _) E* y2 a9 O7 k: k' @7 @  ^2 a+ `" s6 }; \
组合使用方法如下:
' l+ d, Q! F! Z1 L" A3 f7 _+ }0 b" e. m6 P3 r3 y; e
db.user.find({"age":{"$gte":18,"$lte":25}})# B' }8 u  I8 R# }' @8 d2 b0 p

0 a+ G* p. V; U; [2 z, }
8 C( b  U" }" G, R+ ]6 b) l9 ^
* C: m) e1 K/ ^9 n3 N对于日期的条件查询方法:
8 Y7 `/ f; B& q6 z. ?+ p) k6 P& ?$ o. v3 u3 u9 J% V- b) C) E
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
  ]/ h3 ~3 J# p& `% T$ V8 s
5 z% \2 n" w: W) X: A, A( R0 x, D; i0 i) w
0 |/ U0 `0 z! ~8 U
2) 不等于 $ne; I0 \' r$ \3 R9 Q- M

" ^+ A* f# r; Z$ L" Y9 b例子:9 Y' Z& E, p; C0 {0 i* i2 j

; d$ e, L# U3 @0 \. ydb.taobao.find( { age: { $ne : 10} } );
& O/ d4 X- [* _# h: }# q5 ?7 `php7 查询mongodb方法大全
+ R% r7 k5 w5 t/ m
游客,如果您要查看本帖隐藏内容请回复
5 v- e) W5 U- C. l" v

; J" x0 c% Y. [7 x
# t1 M* M: J7 f$ @& }9 t1 U8 o5 ]5 d  B1 t. `+ y
+ }- ~' o) Z7 p( V
; L9 D+ a; z2 n- `
& s" z4 _* f; x6 g3 H, N2 ^( |- ]

/ F3 A0 N; `. V" [# s
( h& P1 ~. ^7 a  t: z+ x3 s1 a3 v% v, B+ f  \

0 O1 W( {4 X. A' q
: u# k# Z. _3 w; Y9 r  `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
- [& @$ F- p2 Y* C' l
  1. //and
    $ ?8 a" ~6 l3 ]+ e9 I6 ]5 D/ `2 F
  2. {key1:value1, key2:value2}
    + S% S* T5 S& ~" V* r. U% a* Z+ V
  3. [key1=>value1, key2=>value2]2 [: C4 X# \# I$ ]6 E, `  Z
  4. //or
复制代码

' ^6 G3 _6 ?7 U8 j* _4 x- }4 Y7 h# V( Z' c2 c
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 10:55 , Processed in 0.056429 second(s), 18 queries .

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