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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:; w9 ~; b* s" o% t/ w
. E% X- m+ `- X$ G5 C4 O7 l
db.getCollection('student').find({'age':{'$gt':'20'}})* X# w/ {% g7 ^8 J  q# Z

" P# n6 Z2 t+ z! t0 [/ H0 p
5 I6 B' q' [) z: z: U
1 t# _# D: t7 P" L, Y- ?$lt    <   (less  than )* T; J9 m$ r' w4 X5 U
5 t' Y$ h+ l( j
$lte    <=  (less than  or equal to )
  s+ t5 P; }+ D3 x: f+ l! O+ L3 Y
1 @0 H+ E4 N$ O6 t$gt   >    (greater  than )6 Z# d, r+ h! G

# g2 l* B0 |: k1 q: p" s$gte   >=    (greater  than or   equal to)9 c9 j5 D5 T, l& a. Z+ @  s: G! n
  F& b2 b% W, G* M+ w  _& u0 v
游客,如果您要查看本帖隐藏内容请回复
8 w0 W& K# r1 k! ?! J, k+ W6 |
  M/ x2 ]7 u, ?6 R
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}1 ^2 Y+ z4 X! Q: O* x

6 A- X0 d" F% |& ]! C8 p$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list9 j* ]8 ?' B+ j3 e* Y1 }% ?8 L7 E
# c) _0 `( U* m, d6 {
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list! \+ s4 R  o* T

5 L1 t1 L3 `: Y8 K" t) F2 M$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字. Z3 Z+ l0 j: `

& P1 h9 d/ D% R$ v- Y6 a$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
2 h; v8 R( A; @5 \8 |7 R: d% Y0 v& y  v! p+ r5 }& I
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
9 |5 [$ b. ?5 G- G2 S. g8 Y
2 P7 y2 f* A# p& V$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
" k/ a( g+ E3 Y1 R! ~3 H! Q- m( y  w8 j4 C
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})0 t5 t& e  G2 C1 [% u
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);! c) [& N6 y( j0 y

# C% W5 T; r' s1 o% f  j0 O1 z; d$exists 键是否存在   {finaGoalLine:{'$exists':true}}/ v7 @( Z( y3 F+ q7 M+ S. x: j% V

0 T6 s  T6 _4 l3 c5 `- Y$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]6 n2 a6 I' L- y0 ~
0 R8 v7 `& a2 u: P
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],. ?0 [. f, S/ g% Y- B' T) C
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
: [- B- w2 o' s3 n3 I
9 J. k9 W" Q6 ^5 A+ C8 X( R5 J2 A

; e% J- w. r/ A; x% N  J5 U8 U9 ?7 G. L5 _0 B! K

' }5 [+ W/ s' O% b& w# A* \, u) a# P7 h( _( F! u$ _' K

- i" D3 O& s7 p1 c" e/ ^" O6 V( x; a( |3 C! g# t' Z: `  K

3 M5 \) H) N  O9 F组合使用方法如下:- F1 [! K) u' k( T+ X5 q

  W- L# V1 v! b0 g* o) Kdb.user.find({"age":{"$gte":18,"$lte":25}})  v- \( o4 s7 h
& {( C' N, U- G# f! }5 N
  ?7 m( y4 j- N( ?7 {: u/ O

1 m- \2 @; p1 a/ o: s对于日期的条件查询方法:& k0 f7 k5 {! q: ~" Y

# |# s" R5 K& b4 [  V0 W# adb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
4 O8 K5 w8 ?+ Z" }. n# o2 p, F" M6 V. z( D% i' ~

  u; G4 V$ s7 K8 j6 a& g! C( z8 x9 z7 R6 J6 P3 k8 ]! f* p
2) 不等于 $ne6 p# I& B  y3 S8 d( m" I- e

7 e6 i  k9 K! |9 l* h3 E& P7 M例子:3 x" P2 {( O+ l8 m2 S
& X: O3 H& L3 I$ F0 s" P4 F
db.taobao.find( { age: { $ne : 10} } );
. G2 v1 N5 }0 @5 n$ w, E3 }8 ^php7 查询mongodb方法大全
* b. T3 r( t0 A  @) z
游客,如果您要查看本帖隐藏内容请回复
! D/ }" C1 ^' P/ ^5 n

$ ]2 m$ T* B& F' b, V# f# L5 |! K
; Q7 L! J, o9 Z  v  a
$ y' W' f# z- V6 n& ~/ F
: Y, _5 y* ?$ Z: Y5 D
% _( r4 ^7 G; B& e/ h; R
8 V- q7 B5 v3 L, A2 ^
0 a& K% T' W4 f& @6 s& f: O
- ?' f( [+ b/ T- R+ L& K: K4 _
3 w5 l! [, I! T8 p$ k5 ~8 d
6 }. ^1 s( N- `& b7 ]. f* ]" w. Q9 Q5 Q5 g; F& h1 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or' i) R2 H- x6 c( Z& @
  1. //and! P4 a9 k+ y6 g6 H6 Y
  2. {key1:value1, key2:value2}
    / d9 d7 D+ f: @8 B2 `
  3. [key1=>value1, key2=>value2]& p5 R6 Y) c. `2 C1 I
  4. //or
复制代码

2 U- `( ?) O9 S( a  j8 M2 [# k& d4 H, k; L; ]- K+ B
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-19 23:25 , Processed in 0.127460 second(s), 18 queries .

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