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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:0 o) G- H& b4 [8 e* T1 m( U

- N* _+ S+ V. M) k( @7 {" M9 wdb.getCollection('student').find({'age':{'$gt':'20'}})
1 j2 V5 o" C" ^" O' a% }" c
1 d4 l4 e7 S2 d$ @) {
2 B: n" ]3 [; z" t- Y7 F) E/ o
$lt    <   (less  than )( O( l8 S+ L2 U5 H! X, P0 H

: }5 X. Y8 @: Q/ V8 |$lte    <=  (less than  or equal to )
( S; i% d  w5 G/ f/ c, v
+ u" p, G, H9 q: J$gt   >    (greater  than )
" S0 \. c& C0 \* K: }2 R6 x
  m5 |1 B1 n8 A7 V. k$gte   >=    (greater  than or   equal to)) t- X/ W( ^/ n3 f0 o

2 v/ u7 @9 y4 H) [/ P
游客,如果您要查看本帖隐藏内容请回复
0 C$ Y& F/ k8 ?& j! ^& ]

1 N5 P6 _- n: g+ x/ {& v5 |2 V% _$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
" T4 a" |; u  z9 W1 K7 G6 S$ C* M9 j% z; H# v4 i$ S) W
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list# @( n5 K7 S$ I/ E+ ?, u& ~
& F  R3 B" \" u+ {7 ]/ i( o
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list! \) q; R  }! B- I* ~& Z$ v

& S& A# I6 n: R4 s$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
' {, p" _/ X% T( S% S2 j2 z% D* \1 z
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
( O5 d* o3 U7 R/ N8 x, x- d: h( k/ f" Z% p; ^
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int7 M; a% p0 q6 f% p! E
7 H6 X( @% C$ X7 q9 {4 @
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
! ^5 o7 Z3 X/ `, @, W& x* d5 f) Z! \2 N# R9 G: l
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
- j6 f! v9 }3 n$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
- b5 i' K; K3 ^9 w
7 i: {  ~' T$ R- Z$exists 键是否存在   {finaGoalLine:{'$exists':true}}
& c5 x$ y# V5 ~6 R! d; d5 }* D! K; Y3 g* n; x2 O
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]/ Q* |  t  [! B2 c1 z* C$ X

, Z) Z" e! `  q0 ^1 q$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],: x9 X8 C7 A% U) M* e& s$ o
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
" _7 c' c, k( U8 f  \0 e: c
2 c+ @/ d; f& m) I8 o

3 h7 Y% r8 ^8 ~
* j5 q0 w+ W  Q" A, R

1 u% o+ _" X- s
  m# S7 E3 _7 c: B. B1 v
* y" W% h2 K) M3 o% [/ t/ ~2 o

) O% \2 m* W- C8 H& i6 W
4 o7 g- h) Q+ P& I6 r4 H' o2 v组合使用方法如下:4 _8 V7 i6 S7 F

3 Z0 k3 r" C- k: _) Edb.user.find({"age":{"$gte":18,"$lte":25}})6 b4 X/ D4 @$ H  h
1 |$ |4 W/ Y8 z) U& g  }

6 }$ H( r$ c# e) r. `6 b' o$ ?
对于日期的条件查询方法:2 l# v5 w% i' S1 J" R

* j- |5 Q. F0 G% Bdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})5 s* n" d7 ]+ a$ M3 A# i, ^# {* n$ |& ]
5 _" ]6 [; ]8 Y+ @

0 S9 o( e6 X5 M& C- A4 k' l
+ m7 t" f& E" @8 {2 Q2) 不等于 $ne
+ b. v; f. q3 ^" O; p
% T2 E* r; h4 i3 t例子:
  K/ r* n6 N0 n7 p6 I0 I+ s) M7 w$ h4 y! @3 x+ l( F# ^
db.taobao.find( { age: { $ne : 10} } );* k. }7 A- s$ A' F+ Z5 M  d
php7 查询mongodb方法大全
. S5 a; ]* a; a; z; Y
游客,如果您要查看本帖隐藏内容请回复
, O+ y& G: s& [( H2 d; M

% i" z4 F" t4 t/ z- L
+ H$ _7 H! P" W! _
8 e. s0 X* T0 L/ {' `: Z+ V$ j. v- f4 i! j& T6 D+ S
- U/ R; v! o/ x$ M" L1 M$ {
: E4 y1 @+ |' R  i
) q5 j( J9 k' e, j: F  n& I# W
2 \% C3 T) C; ?7 a' V3 ]9 L
" J) c4 t# p! N; s

* e( n0 D1 W  v! k4 m/ M
! b' g' i1 ^! U1 [7 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or" G3 e* Q( ?# y2 X
  1. //and2 q: V  h5 k! ~# U
  2. {key1:value1, key2:value2}% w7 A  Z4 F. t4 ~+ ]% Q
  3. [key1=>value1, key2=>value2]
    % B$ r$ ^. ?- O2 R/ @0 Y
  4. //or
复制代码
8 L& x4 |% J* @7 ~7 c/ L
) T( w. t1 B& w5 H! e' h0 [
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-17 18:25 , Processed in 0.053295 second(s), 19 queries .

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