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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
" P6 _# _3 h  X( D6 @
" L: T; |2 A. p; z7 Rdb.getCollection('student').find({'age':{'$gt':'20'}})
- ?) e5 [# I, r# Y" q' o$ _: @8 N3 p

6 q) P- i' K# U  [: ?
2 N) ]( y* H' i) I$lt    <   (less  than )
; s) l* C' N/ v) g! w! U' L' j0 O! C; J. m! M# o
$lte    <=  (less than  or equal to )
! G% L+ f+ v5 j  X+ c
' M( u5 v- Z* R! i$ x$gt   >    (greater  than )
4 k0 Q3 D! T; c! ~
3 F5 W/ D1 T9 q# b$gte   >=    (greater  than or   equal to)% i4 ^) q( V& ?0 ~3 U
7 K- ]5 V7 W- x4 _
游客,如果您要查看本帖隐藏内容请回复
* S8 r0 C' u, E1 J5 {

3 Y5 Z% _' C3 c& l. d: v% C- \2 m$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
9 Q0 o9 H% K: t/ c, I( d
/ ~2 x0 z+ F" u5 l+ k3 _2 q1 ?$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
" b% F$ V$ }) w& U/ W& _. @" l# p% X/ \4 L- u( ?
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
0 n/ N* b/ N, r1 l3 y) U& e
: i8 R+ O( M* x$ ^; N$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
) b# A6 }# ]  @. U* }" x' n, x
. J6 Z: B3 z1 p2 @1 m$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在) H  U; }7 C( C& W- w
4 o- s1 R$ u* d; T$ b
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
8 S  D, u6 N, w! R
! ]! N  p3 H; x8 e# o$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串# B( {. D, ^* i1 ?- z3 J

, |. o; W% U' ]# _2 I, \4 a& I$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})4 E2 j& ]! }, @
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
+ w/ _: H4 k5 \3 a; ]8 P5 q. C' E2 w" s# i6 l' ?7 G2 d
$exists 键是否存在   {finaGoalLine:{'$exists':true}}2 V0 B: t" k. _; Y, V9 v! Q
& A4 P2 A! {4 D, q* q1 X" K! }1 o1 E
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
$ F$ J$ [7 z$ o8 ^7 m1 ^! l/ b. ^% w7 @- H
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],/ F( b, ~9 v5 c" I$ \
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ! W2 J' x- X  p. X, y+ p

  b0 A/ ^( O/ Y- u  @
  i9 [$ O7 j6 ~. P' c' G/ J
; h( N, Y1 Y6 R

! ]! W2 x3 a1 t5 w6 X) O
- C% [8 \) n, p# M

% X- ^. w1 P' c1 ]) \! k1 t, O0 t6 [- ~/ t2 Y
9 C, _  B& @0 V* C! k  F$ j7 d* |
组合使用方法如下:
3 a, G9 l/ _, i# H8 x
: f. S6 z! s9 z: q$ Pdb.user.find({"age":{"$gte":18,"$lte":25}})
5 ?9 P! }6 j* I# \" x! a8 p
  D& |' s  N2 v' K& y# }, s- @
- @: _9 {2 e5 ?6 _4 E( m! L) @7 R" {& @" v: \. J+ [
对于日期的条件查询方法:% @& h, J# L% c
) ?$ d2 u' M" M" W( r9 n: J
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})5 N1 D+ E# u: z* B- A4 m

  m" t+ g# L9 K! h4 `: n- O+ D5 E
9 D8 A; g0 R* @. Y9 C9 s
2) 不等于 $ne$ H( X: x5 v$ q
# x; V3 N; P, g0 K* B7 l
例子:
4 c+ I( S5 m6 r; W! Y( w# C: F, \0 z7 ?2 j- n, R0 j
db.taobao.find( { age: { $ne : 10} } );8 B! ^/ b9 I) T4 F1 D
php7 查询mongodb方法大全) |# M) z& S$ P/ ~
游客,如果您要查看本帖隐藏内容请回复
1 {( t$ \% y$ r. n( X0 F3 V) W
5 a1 G3 A$ ?1 C' h
) }( J' P5 Y; K

1 `9 h5 m- W& I2 c) q" Q* g
/ m5 b5 t1 O' V  m5 o: q& q+ r0 l5 y
- t- O" f# s$ R" r" u* e

4 e/ g, A6 N5 i, G" ~% c
: d; e$ p9 d% T' @/ W% c' x
% S$ R3 x7 s+ U$ Q4 ~# }
+ y' P' J$ @0 P: p0 ~7 c0 @5 z3 r. [! Y3 `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
& D' Y' ~9 I' ?% {" d- U. ^
  1. //and
    $ M$ m1 o6 H: D7 Z
  2. {key1:value1, key2:value2}; ?* d, h7 v' H* ~# Z/ Q9 C
  3. [key1=>value1, key2=>value2]( D6 T' L' _0 J( ^
  4. //or
复制代码
* ]$ l: T2 j# ?1 Q+ W2 s: I; l

: N  a+ F" u" o; z
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-5 00:00 , Processed in 0.070405 second(s), 18 queries .

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