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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:. j6 \$ ~! V! c3 K+ d4 `4 T7 n

" ~6 z$ x$ }$ Vdb.getCollection('student').find({'age':{'$gt':'20'}})
4 J0 r# O% M7 l3 Q, t$ H5 o
  A( h1 M  Z* z
8 u8 ]* z  `( m0 [# g- a+ {& f  i- C+ r: a! z8 [
$lt    <   (less  than )
% u6 U  Z. ~) U/ {3 _2 Q) p- C1 `* }! o' x
$lte    <=  (less than  or equal to )" U0 d% Q" W6 J7 I
8 I) i9 T# ^8 h
$gt   >    (greater  than )
3 Z7 Y# Y9 d5 n7 P3 {$ h
; g/ i/ S* F  O- g$gte   >=    (greater  than or   equal to). u$ T/ k- Y5 v8 `) P5 _

+ X* r9 L5 l, ]7 r- m9 f
游客,如果您要查看本帖隐藏内容请回复
  S, @( V" W% ~* j! \2 F0 K

3 h' ~" ~. @+ v2 n7 t* R$ k2 I$ne  != (not equal to)不等于  {'age': {'$ne': 20}}! K! I4 f9 ^9 B; l
: E% J+ r# H9 e3 C, _( {# i* N7 q
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list& l4 Q1 j& K" f( Z( W% G

4 n% ~1 q) P; M9 Z0 x$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list" x9 W0 K3 A$ z5 ?; r) _
* P  |' a7 m4 \* O$ `
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
/ M3 n. K8 N. X; d# _3 k& w# Q; n# R( ?6 K+ U( C0 g
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
8 c% {. ~! @: U+ i8 v! w7 P1 @
: y% P6 H4 w, ~$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int3 K) z' Z% ~% ^
  {& F0 ^- v! K: G9 q6 E
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
) r1 Y- [8 N+ q2 Z
* x3 f* T" z& Q0 b- `5 D9 j$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})% V1 o+ ]. X/ {8 t. p5 D
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);8 \0 J) D: j2 E! A" F0 a
' Z/ m2 f$ S5 I6 {$ N" K5 V" J& p
$exists 键是否存在   {finaGoalLine:{'$exists':true}}1 L! e. ^# z. ?4 E3 Y9 ?  `

4 I+ ?' d" @' a$ Q8 J2 q% f% t- z$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
" E* ~: n6 ^$ [5 n# S1 D" L& s& U/ w8 q* r1 R
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
& v0 N7 O3 N/ O# x5 n) d$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
2 V  i, I, {3 P# O, M% o2 x; F) p! H$ S
7 J: j# F4 p  M/ b1 w. ^
; J7 h/ H7 m8 u

: p" w9 ^3 V: d$ h. P' \& M9 ~* K8 y
, {8 O2 I* V' V* U
/ G9 O( [5 r" [# M! @

) W, a4 f5 `, o) l- d% h$ {. k( L$ y. p+ c
组合使用方法如下:5 [$ s/ X% w3 J

. Z3 p' P3 n* ^& O) L7 udb.user.find({"age":{"$gte":18,"$lte":25}})
  z+ f. B2 F# d. E  K7 k$ i$ Y- G. H7 b+ j$ F$ g

; n# h: N! M( ~8 @8 z% n+ q
9 M6 s* n9 U( X8 R: a/ i对于日期的条件查询方法:
/ L3 W/ d4 Y: i: f- n- Z( H2 A, s3 H- t. F3 f5 R
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}}), J# D9 Z' o% j7 f) e; Y

! |+ v/ E9 K; C- B
: t) F8 H/ w) J) q) g
8 R6 r8 w( f/ j) [1 Z8 \2) 不等于 $ne
  x3 O1 a  Z* _8 w1 ?
' q8 S! u( ^3 I. X8 r  x例子:
, S+ U; a7 d5 F% t* T% l) b
8 p* }7 b" b4 Z0 y; F* ?  F, Idb.taobao.find( { age: { $ne : 10} } );1 Q/ T) ^7 |7 X4 Y6 N
php7 查询mongodb方法大全6 C1 h! H9 }9 U& G+ f# \0 V$ K
游客,如果您要查看本帖隐藏内容请回复

# o% s/ I3 @$ L% L$ s  j' p0 R2 y$ u. p9 s9 Z0 I* o7 `& I; r
2 j& g1 l5 Y6 k5 b. M  p* ~7 W
4 T# d& ]! d: o

2 P5 S" W0 B% U, P" p- e0 ^- m# s# X- Q- C( v% Y4 Y
$ [3 s6 b, M* H0 ]. o  }, W" g

" k5 e/ e( p: b8 h
0 T0 p: a3 g0 s! R3 x* k% q# V) R  I; W. w
; L$ a! w( r) P" Q/ K) l! t

, l6 E8 U6 F, ?- \6 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or. q1 r" e+ l! Z  G5 l; `) J" Q
  1. //and4 F" m8 U7 w" k9 I, E8 Q
  2. {key1:value1, key2:value2}
    ! W+ O$ U' e" a, M" g
  3. [key1=>value1, key2=>value2]+ v8 ~% b  T, L% [, j
  4. //or
复制代码
4 |  o3 M( E8 ~

) R6 N/ U% W% h. D0 u4 O- H
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 10:10 , Processed in 0.070149 second(s), 19 queries .

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