管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:" Z; Q9 J0 \6 a7 @* B5 G/ f
& Q/ q8 f3 U% ~& c' s
db.getCollection('student').find({'age':{'$gt':'20'}})% z: u6 n) T6 x/ F' o
7 |7 p3 }$ q2 i7 ?1 K+ w
2 j& K+ H& R( W& B% e
6 U( I& H' H& V2 V: O" u/ ~/ w$lt < (less than ) W' T, E; r" [; s3 g1 z( j9 T% R! N% d
* O( p3 n* h8 S7 G9 N% W% }# D$lte <= (less than or equal to )
" M) g6 P+ n7 m
+ k4 p. E2 J! k) t1 m5 ^: F( F, g$gt > (greater than )
; c/ x5 Y U0 K. P- k& U
$ p$ G7 g: m4 G, T. \8 S$gte >= (greater than or equal to)
E) |0 \! x9 B, Y. ^5 t" T5 h7 _- D; e$ U2 b w6 v* Y( [0 s
+ r( Q; `; A$ U' s" e& v
5 H9 ~+ L) r0 u5 U$ _. r: K
$ne != (not equal to)不等于 {'age': {'$ne': 20}}; f6 z. d6 D, o1 m) l* |: n6 G: ~
6 u* A3 N5 u; v$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
# P% p& s* |3 \& R1 q6 M9 x( }3 `& j" N- ^+ g' b, i( j
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
) L) q% O( }% N3 c$ A5 I! J" t4 F1 l
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
: T0 {% X& i" L8 ]9 i1 o$ Y3 H6 _ z1 H% ~6 ~$ j1 n. L' b
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在+ l3 @0 ]" y+ f! t/ x* l
, @) u. ^3 w1 J: y9 P! J$type 类型判断 {'age': {'$type': 'int'}} age的类型为int5 H9 j( z% R7 b: C
; V9 E$ g l8 h8 J
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
+ F6 W- }& h5 d% ^6 g4 |6 z& N! O# X/ y+ a# O( _; w. U! ^' j
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})0 i3 f- S+ d- Z
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);$ S I& B; z! L- g' i0 v8 `0 V
" Z- Y! ^; B( a( A# B
$exists 键是否存在 {finaGoalLine:{'$exists':true}}4 u: i9 B. u l: J! f
; H, a1 f; t5 ^* x1 E3 E
$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]2 ^' s- a; J3 o9 s
5 H2 s- V/ |1 e. o Y2 t3 b9 _0 `+ G
$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
! t1 q) f s' P8 c0 X$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 }6 Z- M. v& H
8 ~9 o- u' x$ _
& s- b: l9 j! d9 P: S
1 f- {5 H# F5 Q) Q& w) |: j8 j5 W. S) n# C
8 A3 c, k. c: Q3 o( [; S
6 m% m+ ~; Z! u2 W# N
7 X/ F8 h \- r
, ^2 Q7 `, l; a0 g+ w4 G- m组合使用方法如下:
) S( L, U& c0 s% _2 ~
4 C3 a: M9 B, K* I, \7 sdb.user.find({"age":{"$gte":18,"$lte":25}})2 H" j8 j. Y5 a7 C& P- |
8 V) _, \! O" t5 I: F* f
% [: V# B. B1 {4 y0 A8 z
+ V7 }" _+ A3 \5 m' i' i
对于日期的条件查询方法:
8 c+ g. c& W$ Y8 U$ V0 f2 \% A) B6 S% @2 e, F, V5 a8 i* B. K+ c
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})4 G" A8 P3 o7 w' P( k5 Y
' b% d1 S$ i1 A+ s. Y' {5 K$ ^) t& ^+ S a2 g. b3 k
6 B6 m$ X" e. t; F2) 不等于 $ne0 ^* U# t- y& C' w" L. h! F3 T
$ F3 _% t3 X9 j0 f- E
例子:
" n7 ]6 u' j7 w: s8 J% S0 p# @( R2 Z& ^7 f+ [1 i) k7 y( P
db.taobao.find( { age: { $ne : 10} } );
, C$ F$ ~$ M, E; B; }; P8 Q1 [1 D( L' bphp7 查询mongodb方法大全% P8 r6 D6 z5 y
& y2 v4 v' ^+ p) V/ v3 {' n
3 F3 a/ N! Q7 n
- @, \4 C3 H# `5 M5 j% [5 ]. l; v0 E
8 Q$ ?5 t1 [% X4 s- E! p5 V' I* O4 q) Z
4 a9 f8 y1 P9 S {
: |7 ]7 `8 R$ c, k
, @; ~( ~/ i6 b2 r: p: w) H) T
- g1 V/ D+ r" z) D3 L/ T, Y# v) r7 u/ E5 T, X. Z
' L4 \4 k8 X' T& ~4 h! G
0 a* O( q$ D" a1 h! W1 }% D6 M% | |
|