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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
9 B& G& G2 y0 X3 j2 c: ?2 ?$ Y
' [' n  V6 H+ Ydb.getCollection('student').find({'age':{'$gt':'20'}})2 I& N1 a- j) w& {1 o6 Z% z) L
; T* I2 ^# e. A1 a7 Z& Z
% E( ]! Z& v, G; Q

5 |# \$ S8 u! y" u4 ~$ `$lt    <   (less  than )5 M( o. p- x* ?+ I5 H
/ Z& I. `; ?- T0 b
$lte    <=  (less than  or equal to )
9 z. {: N+ K/ J3 E5 E/ x0 o% Q9 K8 S
2 n+ g) n- U" [1 _$gt   >    (greater  than )
7 D/ t) u# N2 |1 \! z4 n( C7 f) Q
6 T' b, c( A5 r* d) g$gte   >=    (greater  than or   equal to)
9 i7 C- E& B. g) L. g, ~* k: I6 K3 J7 Z+ `7 Z3 r0 Y) C" M
游客,如果您要查看本帖隐藏内容请回复
; d9 _) d+ a) `0 G% [, w

; _' x5 j" Z$ D5 w+ e$ t, X$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
) Q8 E0 R! v" M) g  w/ \( B- b8 V
3 l# l+ G$ V! m% E; u1 G$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list3 |$ Z8 [2 B0 c) |5 m3 |" g
9 q$ A+ t; l* @7 t% a
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
) `5 @1 d; `) G2 K# l2 s: {
/ p0 R0 b- d4 t& S  O$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字8 A5 N# r# H2 f
# B, i) Z5 `& k  M: k
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在, X# {0 |1 o& ~

" i' U3 o% J8 W, [9 W$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
! o( B9 h' p) m1 ~0 ~
# L' W5 T, T% K9 |$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
1 b% \: y  d; V2 ?. m8 Q9 _* B
/ {) ]$ X" _8 h& F6 }0 a5 \  w$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
9 M2 Q! i  F9 a* T$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
% Y  E' [1 y7 w0 |& R& Q3 B) w* f8 I4 m7 I
$exists 键是否存在   {finaGoalLine:{'$exists':true}}
2 W. W9 W2 P; @1 |$ L! p; q; c% l
5 E% q8 o1 R$ y$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
/ w" U: R" r# B
. \  r" i% w9 j+ i$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
6 ]7 E3 z, @4 R  C$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ! I- k) i. z  {" L) `
* @/ T+ E  C& A/ D, T+ O

! U3 T8 T# \2 l3 d( l! i/ _7 D! t, D, B' ^( ^; _
: }. g2 D' S! b

7 k) e+ D6 M* t7 \! \
" W5 r/ E$ A/ o% r

: |* }/ x* v" d( E0 }* h$ {5 g9 J; N: `
组合使用方法如下:6 A1 k9 X0 B9 }7 B  e( B% b
5 W  k& J. F+ X" [* t6 g" k) J0 S
db.user.find({"age":{"$gte":18,"$lte":25}})2 m* R8 o& i" Q0 h  l' a# j4 G7 I
* m5 [$ X  O9 ~9 Z  W5 F2 r
. F4 y8 G2 b: U1 H

7 N/ m1 `% J3 M$ M5 N8 M对于日期的条件查询方法:; ~& L) K6 Z) F! P5 v, ?

5 E# F- \9 [# v, M& e  C4 q2 c% Idb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})& _1 {1 L: a5 Y/ N7 G
+ P( {. S, W2 m" z8 D
0 J( m% S  u. @5 w! h

6 c% J8 I2 w$ N8 }2) 不等于 $ne
' k  C& e  ~: p* I
/ Z+ J! F' k5 S! x# e' \, Y例子:* d0 ~, g0 T) _
9 a8 _/ z/ q& \6 Y# Q
db.taobao.find( { age: { $ne : 10} } );5 Z1 I/ d% A) D: C
php7 查询mongodb方法大全2 U  T5 {) {( b/ X
游客,如果您要查看本帖隐藏内容请回复
9 S0 u! l+ Q3 F0 w3 n% B

: A( R' W7 X( f9 t$ W. R5 a+ I+ b) T% u/ p

; O: n( V2 f3 \1 [% p3 D$ B" m
$ n* i' l+ r7 s* m& P; N' m2 [
% D+ G8 w/ W8 f7 H+ T9 U. i  Q' P% a: A0 \( R% k) W" ^$ U
$ A3 N# v2 a" ?. x5 K' l1 B7 w
/ h  A+ U* T5 J4 [

/ L9 l1 P) _& L" |& `) L, v5 `1 L* M8 Q6 l+ q- J; D4 [
( d7 ]2 R& D" P  u7 A: G& X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or; D6 H% z% K& x( S
  1. //and4 j+ ^% c4 r, M6 R$ P3 }% ]
  2. {key1:value1, key2:value2}, ]; P$ f- T' k( l2 e) y  ]
  3. [key1=>value1, key2=>value2]
    : ~. P" f9 g0 Z7 a* S
  4. //or
复制代码

+ h: [; O) L2 S% d2 m6 x# B/ |* ?
: \7 X  `  b5 I. s% {2 ^
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 11:37 , Processed in 0.053054 second(s), 18 queries .

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