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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:4 s8 l# }0 i; V" Q# Y/ H

5 P  H( F" V" K" j$ h" S: sdb.getCollection('student').find({'age':{'$gt':'20'}})# p6 \9 F8 h/ G& g8 v" Q2 j, e% X
7 {9 Q. \7 ]% H* ]" m. l. d4 |1 \: J
; ]4 O! ]# b% B4 C5 Q# z

6 `" G( ^& Z( e$ F5 b- X$ E$lt    <   (less  than )8 A- l( S* _4 I7 l: i2 G2 A0 M) L
  k0 K% n$ L; t6 P* b& X% Q- I
$lte    <=  (less than  or equal to )% J4 X/ Y3 [5 [4 E

2 T, j' }  ?" s) E& m, b, m/ ?: l$gt   >    (greater  than )
2 j, Y9 l/ m0 H, b  B$ _( ]; @% |0 X- @: P( V$ g
$gte   >=    (greater  than or   equal to)
! l, p" y& N8 w9 N* }
3 p' s3 F8 j) T% I
游客,如果您要查看本帖隐藏内容请回复
7 d  i5 q( Q% H3 `7 n* D$ t" M

: Z. n( Z: @6 p$ q$ne  != (not equal to)不等于  {'age': {'$ne': 20}}$ c7 e& [( a5 s- F

" I7 R9 J& l0 M& F9 ^: j5 \7 b$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
" O! k+ L7 Z, J
5 D9 d5 n" k3 E, ]8 P" }3 B- |$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
. ]: v/ a- a4 O) \9 v
$ D$ t, K! U0 r$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字- ]) q$ y" {) f( M1 l+ A' P1 _
% \1 n6 v0 {7 R7 r/ B6 V, r5 j
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
. g  Z& \( z1 e3 c
5 q6 `# `" ~: U' ^4 H$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
/ z: f( @- r4 L8 @$ N* T2 Q( Y+ o9 s+ e/ D4 C1 q
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
+ d2 U# @* q2 W7 z
6 o: D4 \8 V4 F, t$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
" M- g8 f  H( ~: V$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);2 K4 l5 m# ?' p2 k% r" z5 f

; L" Y* X, {# P$ N8 b4 ?$exists 键是否存在   {finaGoalLine:{'$exists':true}}
% c+ F  b8 d% Y) w" y$ z) _
/ P# j. [9 v& p7 d# ]$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]( g2 ^- H9 C0 S6 J

6 M7 `& T0 ]. ^5 h0 c: Q4 N$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],% ^" r, \7 @6 f0 G' [: V: x
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
) M' y$ Y! ]3 a- s
. b' ]( P6 \. p, {
1 G- Z# D( R/ u: J

# b  f" G' s2 B. q4 |1 Z: o4 _+ ?

1 R& x% x" g5 X0 f, N, G* ]! j3 u* b, I( n
! c$ v! F4 K+ w% \7 }9 H# r

- k1 ~9 z' f1 g2 F' d# f, ]: p" Y* z4 u8 ~8 l( a
组合使用方法如下:& a$ i, n3 ]* k2 Q

; v5 |' R0 p2 p* |1 tdb.user.find({"age":{"$gte":18,"$lte":25}})! q' B# V) X4 O) `" e( o) Q/ M# a
1 w" D$ e' e5 w

0 K# {7 ^( T/ F3 c$ r6 W
5 J9 _. A+ v  k+ c) u% D( F. h( N对于日期的条件查询方法:7 x$ A/ i! j- K$ u

* U2 E' `# D$ g7 ldb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
+ s* R0 `$ V8 D: u' J0 [2 A& Q
. P# R; A3 b' ^% L$ f1 {
, X0 w- N( i' y; ]1 U  f, ]0 @% T8 p& W1 _3 U# }/ Y. Z
2) 不等于 $ne
, f) S2 N: j' ~: ^
& Q; @9 Y. `- U2 X' E例子:
7 ]  a0 L* l2 R6 t6 q9 `; T4 F! W. d4 q2 E5 C, q# Z
db.taobao.find( { age: { $ne : 10} } );
* p+ k7 n( V! s- ?( n$ o7 lphp7 查询mongodb方法大全6 T8 [; T1 ^( }% N; V0 M
游客,如果您要查看本帖隐藏内容请回复

& Y' x; ?+ k2 s: C  K- V/ U6 F3 E$ K" K6 j
2 f( v; w5 n3 m

9 m1 Q' C4 M' F
1 {2 g4 l+ @% q4 r; z% ?. i4 R( R" [  ]8 s# l

. M& c" f! ?  w* k1 x. g9 N' y) r9 G( G+ s4 i) K

* K% r$ i$ v- a0 S$ h
# _. k0 |8 @( I6 s6 Z1 R: D3 J7 h/ S& a2 C
( @# Z& s$ y1 x( s8 X( x  u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
. v0 H6 N8 L# b3 I) {
  1. //and2 i! Q& I; j% U+ o$ M: l! p8 n8 b. I$ a
  2. {key1:value1, key2:value2}
    $ t# H4 o3 I( l; r
  3. [key1=>value1, key2=>value2]+ x; `3 g" B) v6 l9 o; w7 ?  a# G
  4. //or
复制代码

) w3 H/ @. ^- Q/ b$ K6 g4 {0 m2 O2 Y5 m" ], \( b/ p! e2 H/ Z
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-8 15:55 , Processed in 0.126941 second(s), 20 queries .

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