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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:; ?0 B' a  Y0 R  _3 {

' |! s) c8 N" h. ~8 Adb.getCollection('student').find({'age':{'$gt':'20'}})* P  W3 [( o( k# b$ j. a/ h

! D. @0 [6 u8 H( p. t' b$ m2 H6 V$ a/ h
! z, t8 e& B/ {, Q% p2 X( ~! x
$lt    <   (less  than ): C% v, k. Q% {2 q% G' S
  ~. k! H6 K8 U" v/ K8 }
$lte    <=  (less than  or equal to )( n8 }! i! @" Y  h2 V% |7 |
% p6 C$ \+ l: O0 l# ?, \+ r" D
$gt   >    (greater  than )
2 Q1 Y2 t* A$ o% u2 b# c: a: \2 O5 f1 u% b- i, V+ [
$gte   >=    (greater  than or   equal to)
  P- G2 U2 O/ L5 a% [5 b
& c+ X8 H/ v$ S
游客,如果您要查看本帖隐藏内容请回复
3 A0 O5 a& @5 _" U
7 h6 p  J. y& G/ [" B, C. V
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}8 t. t& ^2 h. a) o, t. D3 d3 ~; O

- f! n3 I3 V- p% d$ }) }5 u$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
8 ?$ V  u; N: t4 G! F8 i" H
/ j& N8 \& R4 A) k% v3 f! M' v$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list* y5 }0 a' E2 Q; ^
( G  }$ C4 {$ n
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字& D; V6 R5 [, N$ d1 c/ d

; H& g! X$ d" M" @  Q1 @. f$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
/ d$ h$ M# D; L5 ?3 q# @
& v0 j; B; @9 E6 C. ~) {( u3 {0 O$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
+ d, j5 n4 g, B) N  C" q" e
8 g& y: g2 ~( D( P* `+ T- U$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
- z/ }$ y9 J2 Q2 R7 p3 J: v6 f3 B  n
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
% J7 g) S7 h, G) i! a$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
; b' P( F* _" N/ I+ X( a% P
0 N8 ^4 E$ u/ P9 `$exists 键是否存在   {finaGoalLine:{'$exists':true}}
2 u- u. f" n' S- R. Q' Q
6 ?. x2 T7 i) O& D1 I$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
  I: x6 L; H* J. n' E  s7 g4 d9 |1 M& |% F/ T1 r
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
- U4 t) |+ l& B9 r9 P: V" t$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
8 {( ^& h8 n7 E) [' R; x) H/ j( q4 [( r! s/ H
9 k5 P. Q1 g8 V; f# I0 W
2 `- N/ W  W) L! U& S# W, G6 L; y

  r: o( N) y) t* R! M4 X2 C* i3 {) u
4 L" B! s* I. t8 W7 o- P3 d

4 s2 f  |: L; ]
$ J! A! [9 c' N/ S. h+ w! p" c+ k) L组合使用方法如下:
7 H3 Y- t+ ~! e( Q4 J& ?9 m- r( Y
db.user.find({"age":{"$gte":18,"$lte":25}})) F- a# F- U0 `
) e/ V! p" U0 s1 F
% W: f: k7 |: I. Y, p: l& h

; @  X" t! {8 D; h6 T. M/ {+ `& p对于日期的条件查询方法:
- o& o% ~4 {# t9 g7 j5 Z
4 B5 A6 R. [/ q! u: W4 pdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})7 _# m& R" ~! ?) j

9 N. m: @: y. ^. [2 b
/ ~! {6 o6 H. U! @% s6 X8 ?" m  r% a5 a
2) 不等于 $ne
0 K4 Y7 t0 s! Q3 }5 X( [) r4 k; e7 o* v* O6 j2 S' |3 a
例子:5 ~# b1 S& D4 Z

: Q; u& C8 l0 h/ k5 Vdb.taobao.find( { age: { $ne : 10} } );# c( F# e, V& W
php7 查询mongodb方法大全5 {2 I' x. O% R6 A2 [- ^: x! R( R
游客,如果您要查看本帖隐藏内容请回复

) [2 e/ m) K! [: ^2 n( f: F' q9 u4 K4 w. O
! P4 ?3 C3 z! V

; z  d- U- D% G6 [+ a9 ?7 o% Z- h- p3 B6 ~5 e4 d$ ~$ r

3 N4 K% v+ d2 r! S+ ]7 N1 G! p2 B6 Z! A! O5 c- v

- B: b6 v7 K0 i: |$ r! N" e* t, ~6 R' l! s$ E" y+ p
$ p1 x) S9 p/ e8 O! {

: y* I) M" T' [4 J7 F% B
. m( F( n. c, R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
  {! f4 `2 S0 ~  s9 E# x# l
  1. //and
    ) \& A3 u! k8 e" _; D; {# ?; w
  2. {key1:value1, key2:value2}
    6 D" q/ t  s- i7 x" l# q' Q- h
  3. [key1=>value1, key2=>value2]' |, b" I3 I4 n" S/ X# j  W
  4. //or
复制代码

2 w$ h; O0 }& O2 ~8 m5 N
) \/ d8 X# p* T& t) }2 {
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-20 04:25 , Processed in 0.061741 second(s), 21 queries .

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