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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
查询表中学生年级大于20,如下:3 m8 G  X: o( ]8 U
$ c% o: g0 a% o6 `4 T# ~2 z9 W
db.getCollection('student').find({'age':{'$gt':'20'}})) Q1 k' N8 ?: \1 i) @+ o
9 A  C. \9 t5 b% _7 E8 a  X1 c

" h2 N$ Y1 z- E
) q6 v- E( B6 l" ?. U' H8 u) J/ u1 y$lt    <   (less  than )
; o* V2 |; g; H% N' {( v. p: O# \* d5 b% W/ P* g8 Q* j, c6 F
$lte    <=  (less than  or equal to )
; d+ Q" b  j. E2 o) o, \: H, s8 g$ Q% n2 R# V
$gt   >    (greater  than )
7 }3 U0 B2 U/ I8 d/ y! [6 c; ^& H+ l# v0 c/ x  p) ]0 q
$gte   >=    (greater  than or   equal to)
* t5 ^4 m; r7 @& B# o% y7 m2 K3 C
) t4 j: p6 |) \( W4 u& J6 J
游客,如果您要查看本帖隐藏内容请回复
5 h! ^9 L6 F# Q$ y1 U- [
5 Q- |2 ~3 I/ l, X! {; _; [/ c1 S
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
/ \) A" u6 F7 D9 D8 O( E" ?* C% ~/ {
6 _+ J- Y2 v6 B% q/ b% G7 M: J$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
( {" a% Z9 a2 D8 Z+ L, ]
7 k, l) T8 k7 l7 L, G$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
9 a; a; t8 k1 K
4 }( Q$ O. ~0 O. e' X' @$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
0 a% J% u8 \5 K0 a; e8 k3 p, P/ T! C' m
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
0 C9 l4 o  O% }- ]
+ X  M$ n8 L6 {' e# n$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int# @6 M5 g( Z3 d

5 r4 x1 T. M& U: D$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
) r1 I2 Z5 p) [& m( ?7 O" b' M. |& f9 ~# C
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]}), D* S! S3 Z) f. ^: k, h
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);$ z' _7 ?, ~- P( H5 K+ w, h# K
0 K, U- c' h4 Y* d; d* G+ x
$exists 键是否存在   {finaGoalLine:{'$exists':true}}! H4 U- q( l- g7 V& n" e

) {1 C' d! D  k- \* S0 e$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
) ^8 ~7 V$ H6 ?
! H. H9 K; J5 p2 m% t4 Q$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],1 |9 M) y+ @% d5 `
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 3 u" ^2 D$ B: L5 U3 P4 F/ Z1 F

0 P* f& W- M! e) P# G. T$ I- X! H

( z: V# U; D4 ^4 |8 d9 a. Q
2 G/ a" H4 H, d2 f, B5 d( ^
0 l+ y+ E( K. E& ^; d: G+ M  E
5 x" @. U0 Z/ k( @

% P) F! {+ h% \
0 `) u6 d, K2 ]$ _; g4 W1 }0 A) C% b
组合使用方法如下:& B0 Z5 M+ B" V7 n9 |8 z
2 T$ |4 _" F( K) v  [
db.user.find({"age":{"$gte":18,"$lte":25}})
! h2 ^6 {! |2 e' a) D% d
. `& t5 z! ]6 x, ?! v
. L3 |. w: s* }" f* H, G5 v, }5 h1 R# u+ O! C% A0 ~
对于日期的条件查询方法:  w" Q, B; e# J. r/ j& @2 i) H

" b8 w" N0 @) l4 k) e2 Qdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})& a( T& s' w: @# q- m3 t6 o+ Z
1 V9 G9 V* }& d$ r* o
1 F& ~. G/ r) u6 n0 d, W8 q

" b5 P& R7 q& K8 f' m, v2) 不等于 $ne& b* R- @6 m/ B) Z) V

$ J( A! D) s2 ^例子:
% M2 ]5 ^9 g8 d+ W
- _- V! A. M% k5 Z" t+ rdb.taobao.find( { age: { $ne : 10} } );( K7 H  A3 G  m& Q( I* \. {( u
php7 查询mongodb方法大全
9 B1 O$ Y- U3 w0 d
游客,如果您要查看本帖隐藏内容请回复
+ m6 H) X' ^) [. ^7 P& A
& k- k$ X, [9 w/ T

  h- P( J9 M; j9 a; q0 g7 a, Q, O' @1 X6 j
- P! z+ i. N1 n9 S& L

( m9 ^+ k6 [3 {
8 Y2 B+ w/ E9 V2 g" F" a8 R7 G. W4 r; k9 j: b

7 ^* G) r2 J8 Q, L1 @. l
, ?: c  C6 [3 m6 {+ [1 @& `  Q8 I  @& H7 E
" `8 S% {: g+ X) E4 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or# a2 u. t8 b% a0 x) X2 c" I& Z/ p' s& v
  1. //and
    1 w& ]  M2 m; D4 R
  2. {key1:value1, key2:value2}7 l! y* I4 n1 ?' w& y
  3. [key1=>value1, key2=>value2]
    ' h' s* U, M2 {8 g: U6 _2 g) d" y
  4. //or
复制代码

# A% h0 s: x7 j' t6 L1 @! ^0 f9 b1 H+ p% M/ q, K
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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