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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
; f9 ?4 ~* f3 ^1 j& o' t0 J; Y8 l  O3 u9 l1 A0 c* I! e
db.getCollection('student').find({'age':{'$gt':'20'}})9 v( B8 M+ v9 N2 \8 \
( R6 l; e# B" k! E# B) t

. n9 r7 k4 ~6 J% S, V7 X. f( V/ H/ e) J: U
$lt    <   (less  than )- E0 U6 q0 T+ L

  J  N4 ^' J( K8 W8 P) u# q) T$lte    <=  (less than  or equal to )
0 Q; Z$ s( v7 ~# y( B- O" {7 M& Z" |6 L& T" ]1 N1 i9 Z( i) b& J
$gt   >    (greater  than )$ U, ^8 P  v: _6 Z

6 r8 [7 }% A( p. h+ l, _! _$gte   >=    (greater  than or   equal to)
" d  n1 Y) O0 ^$ B, Q3 B8 ?# Q; {# H, S* B: K" J8 `$ _
游客,如果您要查看本帖隐藏内容请回复
* o- o; R$ T. V: Z0 e  w9 ?

9 ~3 k0 p% s7 [) i4 Z2 o$ne  != (not equal to)不等于  {'age': {'$ne': 20}}, s5 V0 }8 C5 R& }) t' e) y7 R) x( {3 w

$ S0 J- R, s. N+ }% h0 r. ?6 \1 E1 F$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list5 v* V0 B1 L2 S/ m
) U0 x1 ^- R! h% `* O8 O' ]
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list; [2 ^6 ^& k& U- x& t5 U3 Y
( u- m9 c8 }1 t, C# w/ O: I9 V
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字: F/ K6 F( W) s+ F9 f3 [* c, n7 L9 _

6 x& K$ j' }( {; F8 W- q9 k$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
& l8 w: a( W/ e
  y" V! v8 B9 `6 [$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int5 L, [# w6 ]9 W: p' K) ?0 q
. O+ p. w6 o1 ~! F. L- y9 t
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
: o6 S# P' I. I$ n9 b& s! ^  ?4 V( X6 Z% R9 h; w
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
1 P# S  G. B5 @2 R$ e1 X$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);& s( p/ ?2 G' e
. A" {% X, _/ z7 C/ _4 V
$exists 键是否存在   {finaGoalLine:{'$exists':true}}
" B; B& j% ~6 H  l$ I
5 \1 h% Y: s: ~1 X0 f# T4 g$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]2 A8 `: \" ?; ]9 K4 c$ M# Y- h

- v6 G. G6 G2 w. ^$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
8 Q$ x3 G+ \2 {1 ?$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
. X# Z/ y9 m4 R+ _  T: d+ }9 V7 R8 J$ R/ K( T* ~; q9 C

8 x" R( T1 M  T) R, g! }5 V, ^/ C9 d! {. C9 i: f' W( b4 W
6 d  t1 ?& J0 }" i* M, R
0 e2 D  ?8 Z; [9 {
, k& L: e, x. E, ~8 Q% j
0 U3 S+ f) t( z1 e2 u4 `* z

$ h6 l( n0 k) m' k- H组合使用方法如下:
8 p8 |9 V7 W" ~1 H# X9 x
5 o, o3 D: b& k' ?# udb.user.find({"age":{"$gte":18,"$lte":25}})7 L9 h7 E6 z$ V% |  u' @

* x, V; O# h: M- m+ A
/ d6 S4 _+ K, g% T/ N3 ?8 `5 ]7 W0 H4 z/ {8 s* f' ]
对于日期的条件查询方法:
: r4 ^% I% n6 O- O+ M
, U7 P) \% V  }$ Q/ ddb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})3 l3 p' e9 q8 v& P* X

& m/ \/ ]2 r" I5 I7 N
, y; H* E) R# Q# N
. q& l  R) @' x5 G+ U2) 不等于 $ne+ Q0 a  q! s( i! U7 m

5 y, @$ _# p# ~; n* F4 x4 m, X例子:
/ u" {0 R0 D& e9 V) J" [- h+ ~: ]6 m
db.taobao.find( { age: { $ne : 10} } );
, a2 H) {7 P# u) K' b, qphp7 查询mongodb方法大全! r+ m+ y3 P) O
游客,如果您要查看本帖隐藏内容请回复
3 R* M2 `8 k% o! Y" j% Q

5 w: k  l: D  _1 [& H& b% i% F
5 {0 x3 E; i- @( o% y- J* T; O! ?& H* D! i6 m; U
& V! b3 r. |2 W5 x
+ Z* t* k; @8 m0 p( g1 |* n4 A# Z
- @8 s0 w+ f$ B

% p# t9 h9 {8 D
1 a; t! T$ n& V5 c7 ], I7 p
, a+ z+ C+ i: \
+ N! e+ F; ~* t" \9 ^! }5 R/ E, E- p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
3 ~, e0 r+ n: I5 A, s
  1. //and2 p; N) l' g1 ^
  2. {key1:value1, key2:value2}6 l, U5 K# S" n
  3. [key1=>value1, key2=>value2]! l$ M! o2 v0 J9 o5 m
  4. //or
复制代码

% L  H$ C) I: h
- k/ U0 \! i" Z4 D" y; q
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 14:27 , Processed in 0.051217 second(s), 20 queries .

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