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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
! m2 @6 G; r; f9 Y. ~- d8 X7 ^
2 R- p* B; w6 t7 I: ]5 ?3 _: qdb.getCollection('student').find({'age':{'$gt':'20'}})% B6 ?& T1 N* ~( M
( R0 j6 A  M  G1 [

1 R; D6 O8 C$ z8 c+ A/ [
$ g' K: E* V5 p9 `6 R( ?. W: X$lt    <   (less  than )4 Q) S  q* ~- m* l" g
; {1 e- n7 a) F1 _+ e4 W9 T2 r2 @3 [
$lte    <=  (less than  or equal to )
: k0 b2 x+ R8 {. l# o5 L; {) I4 P4 X% m2 a/ U
$gt   >    (greater  than ). n, g8 g1 j9 d5 u7 Y

4 F) P* Z- r% w$gte   >=    (greater  than or   equal to)
" J% O% v7 P9 g- i3 j
) Y3 c! R3 B3 C$ P& q8 J- t
游客,如果您要查看本帖隐藏内容请回复

. I) w0 n# _% a/ {) e1 g8 e: C4 N/ l& _, p4 j1 |
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}1 ?) s2 e4 D# v2 Q( s
- E) }& v6 Z$ T) X
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list, T6 o4 [: X, K: V
, F- O- g3 v" \$ @* y
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list$ ~! C7 ]' ?* U/ x7 h& K
" ?# C, f) M/ D; M9 x' O+ b9 L& M; |
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字% O% t+ A5 n8 P% {( _8 r

' m0 J( H0 u) V4 ^5 G! E1 u$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在. R3 A3 _( a  c# E3 K

$ }# H& J' O. v$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int& ^9 B( m7 X) L

) L! g& _2 E& `/ g- a/ v$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串4 j' ]' F( ]* o7 ?

+ Q: D. X+ G- h# U2 }4 V$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})1 `/ e2 v3 h( Q8 m, [
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
9 \# `) }% |- {
/ b% p* t# S+ J) X: S! f) |$exists 键是否存在   {finaGoalLine:{'$exists':true}}
, O+ R% u% `1 l  {. R! b5 y  `0 r
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]9 ]) p/ S; V2 |: Q

: z  B4 p) c. R+ Q$ d; n1 h$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
+ v+ U) }4 N0 S$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
" Q4 n5 G: Q$ y: Y4 B$ P5 U5 H$ U

! S7 r4 U8 _7 z2 e2 t8 i' @0 K4 S! Y
7 H, q9 a: ^- M, _

+ L7 X2 j: T: h, f( D  Z3 ?# Y8 `, _( `( g# A2 z% P

* k, I5 t2 H9 Z8 [& v8 l  Z2 Y
7 v7 m- C! ^1 g! ~3 c5 {1 e. S/ e: i0 `  T! ~( O( g
组合使用方法如下:8 [+ v; u6 ~+ e. Q
* }* U: i) m: B4 `* S7 O* l
db.user.find({"age":{"$gte":18,"$lte":25}})
* i: d- E! l2 b$ u- b  B
- r5 R8 g) g+ I  V1 \) L
! _! j9 v8 f  O, A& u' u0 P% o6 ?# t6 J5 ]7 D' \
对于日期的条件查询方法:! U7 b) c% }/ l& k3 J' \& K0 s
4 m: @1 a$ Q0 s5 R  {' Z( N
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
' x0 P# g3 t$ Q  \; D+ N6 [8 Y7 ?% R/ l7 E  D' M6 Y0 ?
8 G& m1 W" C- {( i9 U6 x

/ |+ J6 g# h! G, r2) 不等于 $ne
! M& F' O3 D5 _% h; X0 [) R$ R; R3 B5 j5 O
例子:
, p$ Y$ i/ w4 b; r* \3 V; \5 o( T7 {# r9 h/ s# |2 c, @1 j& b5 O( R
db.taobao.find( { age: { $ne : 10} } );
8 U2 G' f6 A  y8 W2 T+ x9 j! _php7 查询mongodb方法大全7 t; |' W. ?5 o  ~
游客,如果您要查看本帖隐藏内容请回复
" T3 v1 A3 f# W5 C  _

9 r0 e7 u, b$ V4 x/ p' `' ?& z' [$ j3 \4 e
* \3 }" `( L: _; U4 D" }) K
; ~8 V% l* ^% H) y, U. [
: q$ G* s. }8 c
$ i2 d1 i, a) v+ L- u  E+ ^# D
8 w" L$ i2 u8 j4 e/ ]" @

" u- X) M$ S: `6 X2 d% G" M/ _& B

9 w8 d6 M& m6 ^7 A, J4 U& r( ]4 c( I, @6 a2 G& C2 m8 c! ~, L4 \# j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
5 I* R- r3 {* ?0 |+ I& j  p
  1. //and$ W7 |3 X7 U# V0 e
  2. {key1:value1, key2:value2}+ J1 d+ O6 O0 J2 E4 Y
  3. [key1=>value1, key2=>value2]# u% M/ m7 f& w  ^; Z# d1 k0 w
  4. //or
复制代码

$ a% L8 q' |0 F' V; R2 T9 p& `+ K: _: \/ N) J. J2 Y" U
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-21 02:07 , Processed in 0.067723 second(s), 18 queries .

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