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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
4 a4 ]3 c* ?5 S: E; t; [9 E% [6 J) l( g: y$ B
db.getCollection('student').find({'age':{'$gt':'20'}})/ b1 E9 C. e# \- Q

' c. N3 m9 A, v7 J: @$ R
2 e: F+ t" v3 y/ j1 a1 \  `. P$ _: r& v( g* y* [" k8 D9 {
$lt    <   (less  than )
. p0 I: G# ~  `' g. Q* a$ b) m5 B/ j5 N; M0 k% D
$lte    <=  (less than  or equal to )
2 J$ x  b. l9 z1 w- o' G1 r# {9 k% k; p/ f) t
$gt   >    (greater  than )1 E+ W3 M- O/ T7 N+ d3 q

% i' Y5 b, Q6 Q5 C  k+ f$gte   >=    (greater  than or   equal to)+ N, v" I- X4 K8 u7 a9 w

7 ]3 \; D+ d! v9 H
游客,如果您要查看本帖隐藏内容请回复

, v1 S' E# p  Q! T( t$ k, v- B; s2 O+ {1 h  \  {4 f4 _/ I
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}8 c: j, Q3 ?' L  c& T) t

& w( E1 ]# d1 o" j% z& o$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
8 i' ?. w7 |" I
# }/ G- U, T/ q5 w$ q# _! O$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list! v% i  l$ y- R+ m
1 L4 Z; `1 x7 F, W: y2 m6 F% c+ }
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字3 V6 P+ B( S4 s! R6 p" ~

& O8 t: U% Y6 r$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
' N* {: H  ?1 K' |4 g/ E
, Z+ H8 v+ r# @6 a: x- C* f+ _$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
( {" Y& k9 S' B. N( n+ J
' {" V: X4 E1 Y, ?2 s; Q. D$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
/ @; U3 g: V. g2 H/ D* Z/ e8 a0 S7 J. a) W+ v. h1 Q6 C* ?2 [
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
* G$ [; p* Z: {) n& m$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);! L2 v" B  |4 `" ^9 p1 t
# b" b/ i- M9 F$ s( u3 Z
$exists 键是否存在   {finaGoalLine:{'$exists':true}}
1 U( ]: f8 T& X4 @' q& x- V. X, N
: k. N! h' m) s, V$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]7 ~+ J. k0 Z9 |& X/ T5 x% f; p
6 t* \3 [) j4 E0 `' B* B5 k
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
8 G' `9 j/ {: r7 f$ R8 n8 B$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ( p* J8 j$ L6 ~, ^& W" T0 Z" s" H6 U
# ?0 r$ y% H, S3 d+ y8 D' ^

6 r% j0 E: {$ M6 k. S
# l# l- G) t* f' W+ L4 r1 H. J
& T1 f- [9 P; o7 n8 J

* i/ N! e1 l! ?# M

& o2 G! f" W5 J
0 H# @% L1 y% O$ k1 ^: r3 w- L* Z9 q# V' J  Y% q
组合使用方法如下:0 v+ o# i/ M% ^9 D0 _% q" K
) B# M  P- K0 @$ h  g2 S4 r
db.user.find({"age":{"$gte":18,"$lte":25}}); F1 U, f; E/ E: V1 P
% g" {4 v$ E8 Y8 N/ v% c! I4 g

( u! ~& A' t3 W0 Q9 E" N9 o# [& U
! k" r5 }0 \3 r' Z& j3 R对于日期的条件查询方法:
& h2 s7 O$ O# G* [7 F5 \" x$ {( Z- W& I, j; {
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})- Q7 X9 X) _8 i5 O

; X. S0 Z- h; @
- ~9 {5 a* I& O4 ?: \
3 S, q& I# u: _& d6 u" [( c2) 不等于 $ne
- a' r0 L" [4 S  Y. o1 v  U: v# p3 N+ t: p9 A' a1 ^$ q6 K
例子:+ v9 O# C' O, L. U
* Y) W9 s: V* T' L: }1 d% ^! X( V
db.taobao.find( { age: { $ne : 10} } );- z6 l/ Z; y5 s! Q- {) q, J( F
php7 查询mongodb方法大全
" U- Z" Q/ _3 h- ~; v' `
游客,如果您要查看本帖隐藏内容请回复
7 \4 T" c2 E  m* E$ y3 v

- j! K, `0 f7 ~/ N6 n; s
5 F# j. f4 B8 g$ l* v* ~
, \0 M* Y6 O9 }, p2 G- r. N3 ]; U2 r! m" |
8 X7 L' y. M( i. y
' `8 V+ x' W/ w4 P/ q; R7 c
- }; p  A/ r6 [- ]. T# J  K$ `! l# h) @3 e

( }# W2 Z: b3 ^; S9 a! @& R' s; F8 b0 L. o9 f, N0 t) O
) d5 A7 G2 M( G; A0 v1 a1 ~
+ S; F5 Q2 i+ ?4 {/ }! ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or. G3 H3 w/ K0 _7 q9 N
  1. //and3 a; V; r& w) w+ z
  2. {key1:value1, key2:value2}
    6 S' p$ v6 L% R
  3. [key1=>value1, key2=>value2]
    / s/ B# Q& N# X$ E
  4. //or
复制代码
5 |: b8 u* P' _; b, h+ t
/ f# y4 R( n" X
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 16:41 , Processed in 0.107483 second(s), 18 queries .

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