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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
4 A3 Y: Y* a( e/ B" I% \6 G
# x& E4 T1 Q* n9 P/ Y9 g- v8 \7 Tdb.getCollection('student').find({'age':{'$gt':'20'}})# @/ ~. `2 |& X" G3 h3 ]8 Q" e' ]
7 ]; \. C$ ]6 V! ]
4 n3 S  s# p" S" A
1 ]8 y* n8 p5 _8 }& O: \
$lt    <   (less  than )
  f- @# `' a% {; \8 ]& V, i5 F8 e# ~. u1 q8 ^4 ]  `
$lte    <=  (less than  or equal to )
; A; q+ m, d+ U* R: s  D# f; ]5 {7 B# ?! Q
$gt   >    (greater  than )7 U/ S$ S# u$ `. J/ c7 s

6 U4 W1 g3 R/ F) y8 m$gte   >=    (greater  than or   equal to)% L% o( q9 A5 L1 G% M

! p2 T- S4 V0 t0 n! u$ ^- }3 m) u
游客,如果您要查看本帖隐藏内容请回复
; j; Q5 U) J0 ?# W: V
  ]7 n" J0 U0 ^2 V
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}; T( m* C) Y0 h1 r# [! f5 B

8 e& B" {9 S4 n% k" x' v, O$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
* ^+ V, b* w1 z, ]
* b+ g6 `$ k3 h4 @$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
6 L( _: ?. ?. z$ D
+ T7 R+ X. J* X: k  j$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
1 m+ |/ t0 c6 K+ Y
% g# G: f2 g& n( W$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
0 Z- m2 C4 h) D8 f7 g& V
9 M7 r8 J, |  g) N$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
# [7 R3 i* [0 T! h$ x$ e1 P% K2 M) ~2 w1 {2 A( Z3 h3 m
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
; T* _  R3 o( |/ Y& h  C- k/ \4 r* y5 {+ X: P; C2 v
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})! w; ^7 S* H, ]0 n
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);, a8 T$ r3 r% P- a" j! j# p* s
# {& s  u2 G$ S$ j4 {7 @: I" V: A
$exists 键是否存在   {finaGoalLine:{'$exists':true}}( ~$ M2 V2 b' j5 G3 H

) S* `* o: [9 C$ i' f$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]* s8 o% m; C, U

: o* j' c1 d( |2 r8 n: n. z) m- r$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
7 r1 Y& R. e/ Z$ B; b+ V$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ! H9 ~. `" G3 J0 }# d3 q. x
% h, _9 a$ i3 k( V3 l1 ^
  a" P0 E0 F$ G7 c

) e# P* z3 p* W2 \4 ?3 N

1 B) Q3 Q: g- E, T3 s6 t
) H9 t/ [* D% h: }8 \1 y4 U
, V. R- ?3 X2 D1 D+ B

7 b- \* A, b  L) e. T% X0 P4 ]5 F9 J( `$ U$ \
组合使用方法如下:: z4 I4 J+ H. z8 {
( g& G' |% C" ~" Q7 Q! \8 I
db.user.find({"age":{"$gte":18,"$lte":25}})
5 o$ f. Z) O- W+ O3 A! o$ ~, ~8 |( W
# ~! x7 A3 L4 ?+ N7 s) f3 `
, |" X3 D$ e/ N: _
对于日期的条件查询方法:
( _! W! L4 M7 Y% [9 N$ J& G+ W" A. a+ e6 ]2 ~
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
) m" K  B8 J- _
- B* m: u" Y' {3 D. p
* [2 e. w6 t5 \3 E3 h8 ?8 h8 U$ D7 }9 o5 t, b( h
2) 不等于 $ne  f  x! `7 T# n8 d) \' l
# Z( |& u, _$ G" v) ~0 O
例子:: t5 n2 V  i! d# T

6 t( i0 {3 U/ R# k  E# Q6 Ndb.taobao.find( { age: { $ne : 10} } );1 [+ w4 e& i9 e
php7 查询mongodb方法大全9 N2 f! O! J4 Y) s+ L
游客,如果您要查看本帖隐藏内容请回复
" q+ d1 n! K. I% L' g7 p
9 x' o) C: T! a$ q+ y
' q5 S) z  X) c  g& t( n8 X+ D
9 t# K/ }: a0 v) M

7 g) L& e) q5 F) `3 c+ h" ^# F5 B8 Z
  x: t) J1 ~) _6 C

) h/ P# R6 L. M& Q1 A
/ {7 U. e* g# j  ~, O8 o, u5 \2 l3 Z7 k2 e! G6 G
$ W. ~+ c) N5 e3 b% T% j/ b
6 U1 n8 \0 ~3 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
' {  e( ~) n+ N- j+ O& ?
  1. //and& s# ~4 M2 E& b. D9 m! N4 V: y7 e9 m
  2. {key1:value1, key2:value2}
    $ e5 u" y: @' A0 J" n# s$ {6 Y
  3. [key1=>value1, key2=>value2]4 M2 R6 a5 N# O2 E- f$ H
  4. //or
复制代码

3 S" H' [, U6 }& w5 m
" V- H9 t- g% C  r6 a" W* F
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 17:37 , Processed in 0.046829 second(s), 19 queries .

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