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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:2 @0 D& K; A9 Y; K# p: p
+ L1 n. f4 V$ N; C" Z3 f7 W
db.getCollection('student').find({'age':{'$gt':'20'}})) }  F% ]$ B, b1 n, C% ^. a9 v7 v1 c

' d4 v; p0 T4 J1 x+ J+ V7 ^  L
1 v) L; s, d7 C! x4 l# B$ H
( W7 P2 F, ?6 i$ B5 M! a$lt    <   (less  than )& f; j, v- A- B# D) o* |
4 Q4 w2 e, \" z2 O# t$ p2 O
$lte    <=  (less than  or equal to )* `: ~: V% ^* h3 C, k

* J7 L% h3 C4 X- I% V6 T$gt   >    (greater  than )
- H8 ^) I/ F( d8 G6 c$ i# i+ A1 _7 A& E, m  \/ f% R$ M
$gte   >=    (greater  than or   equal to)2 y4 r; o6 L! s# q

4 n, P  A4 I. V* }  {* u% U
游客,如果您要查看本帖隐藏内容请回复

' ?# @. g# Z7 \  D; L7 `5 w+ v2 d% o" }  Q  G" t
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
- {/ b  `6 ^7 X! `" I/ h/ ~( x# S0 J# u' P# b* p3 L' D% h$ G4 x
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list9 u4 d* b  F" j4 t! s! A0 N

8 v8 W9 O% x& X$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list( `9 h  ]/ G: v$ z; `9 N5 n

! H& `3 ?8 q0 _. G1 A$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
3 U( J' Q9 m- \: r; T9 Z1 c9 @
  r( a7 R# _1 O) z6 S$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在4 h# Y( B, A' r- A# B7 f
$ U) |( a: h, r9 m4 ?
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int2 q& u  Q* _9 b2 b
8 p$ {' q( B. V: D) h# _! V% c
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
+ V  D0 l( Z+ M; d$ d, @
9 ]$ q; O/ T5 i1 T( y* a/ c4 s$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})2 [- |: x$ y4 Q% e# ~
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);- U% d& a/ s! d

: J# }8 e$ J+ f9 {3 ]- O$exists 键是否存在   {finaGoalLine:{'$exists':true}}! [- J. _, y# d2 e* q* P. |& N
& X4 f% W$ u; J1 a# V; }
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]: R  s% S; }1 T/ k# l1 @

; Y) i7 j5 C, J; u) e8 Y. o4 z$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
8 b) X7 Y. E  c$ G3 h$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ! i' m6 M7 K) Q; n7 I' e

2 X- |8 p, ]* o
( U) o7 U0 q- g6 D! z6 U2 ^4 Q
& y8 C& v8 U! S. e

0 T  Q1 f) h- @% v6 V
, {3 J% s7 V" ]- r

  v8 b& O" `0 i, r! {
' F4 ^4 P* j( N' [- p% y/ y7 P) R- l
9 H+ ?) Q" k$ n组合使用方法如下:4 F* v% @' U% x. r) g+ S
) H& \" a9 [7 n6 l0 d1 ^0 B. z9 s
db.user.find({"age":{"$gte":18,"$lte":25}})
- X9 Y' R9 J  T% z' Q; [
9 ?0 j9 T! l2 t& O: M( `' H8 L3 m4 }; z' g: o

7 A% R8 C. F& p) g9 p对于日期的条件查询方法:
# j  H" W7 N! ^& ^# e) g
# b8 Y4 b3 q2 V. t; zdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})7 ~4 w, K) R' D

1 ]& j' b! G; H$ _: U7 @$ J# O. t; O3 k2 l+ D4 y' g7 h
/ b  G% ]+ _& V9 a, \/ ]& e
2) 不等于 $ne2 \5 g2 t; `2 g5 T- l

; R% r5 ]4 {4 h" M. O例子:
) F" ]- g9 [' E7 Z8 B
( S5 B# ]4 o+ L& Mdb.taobao.find( { age: { $ne : 10} } );6 A0 C! W0 n/ b4 W  L
php7 查询mongodb方法大全/ C; \) ]: v8 t, B8 H
游客,如果您要查看本帖隐藏内容请回复

% O+ ^/ j4 y+ a
9 m5 p. z8 V+ N0 }  E
+ ?; D  z4 y: v* [8 V4 ~" r+ N
2 M. @# }, k1 }! v( }1 A1 j1 t
" T- r. n, K+ L! i
' b$ U( t. u( d8 A- k- A0 z  E# c+ @3 O* G- q" w8 L! ^; c( O1 s6 i

4 ^, R7 P6 O! r" I! a. [1 l  t: y7 P$ O6 J7 ]+ |9 g% q
+ Y/ ], V! Q0 C, k- u
6 v, X' o. o! ]0 q

3 N, A& e3 a% b, B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or/ e3 ^; h; N. `# f. R; D" H/ `
  1. //and1 r9 y$ s. Q1 A  n7 @& V8 B! _% i
  2. {key1:value1, key2:value2}
    ) m8 B9 ?0 n" P4 b  {5 Q
  3. [key1=>value1, key2=>value2]
    2 w" p) V7 u( {
  4. //or
复制代码

& A" N/ E$ I  R8 B; M9 l" }2 N+ K
( E% z* b; o* r1 f$ {+ A
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 17:24 , Processed in 0.070156 second(s), 19 queries .

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