find除了精确查询外,可以匹配更多的条件;
一、比较操作符
$lt代表<;
$lte代表<=;
$gt代表>;
$gte代表>=;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
> db.post.
find
()
{
"_id"
: ObjectId(
"54a530c3ff0df3732bac1681"
),
"id"
: 2,
"name"
:
"joe"
,
"age"
: 30,
"sex"
: 1,
"school"
:
"marry"
}
{
"_id"
: ObjectId(
"54a530c3ff0df3732bac1680"
),
"id"
: 1,
"name"
:
"joe"
,
"age"
: 30,
"comments"
: [
"test2"
,
"test9"
,
"test5"
],
"sex"
: 1,
"school"
:
"marry"
}
{
"_id"
: ObjectId(
"54a9700e1b5afd45354fd086"
),
"id"
: 3,
"test3"
: 3 }
{
"_id"
: ObjectId(
"54a9701c1b5afd45354fd087"
),
"id"
: 4,
"test4"
: 4 }
{
"_id"
: ObjectId(
"54a970281b5afd45354fd088"
),
"id"
: 5,
"test5"
: 5 }
{
"_id"
: ObjectId(
"54a970351b5afd45354fd089"
),
"id"
: 6,
"test6"
: 6 }
{
"_id"
: ObjectId(
"54a970781b5afd45354fd08a"
),
"id"
: 7,
"test7"
: 7 }
{
"_id"
: ObjectId(
"54a970831b5afd45354fd08b"
),
"id"
: 8,
"test8"
: 8 }
{
"_id"
: ObjectId(
"54a970901b5afd45354fd08c"
),
"id"
: 9,
"test9"
: 9 }
{
"_id"
: ObjectId(
"54a9709c1b5afd45354fd08d"
),
"id"
: 10,
"test10"
: 10 }
> db.post.
find
({
"id"
:{
"$gte"
:5,
"$lte"
:7}})
{
"_id"
: ObjectId(
"54a970281b5afd45354fd088"
),
"id"
: 5,
"test5"
: 5 }
{
"_id"
: ObjectId(
"54a970351b5afd45354fd089"
),
"id"
: 6,
"test6"
: 6 }
{
"_id"
: ObjectId(
"54a970781b5afd45354fd08a"
),
"id"
: 7,
"test7"
: 7 }
>
|
$ne代表不等于:
1
2
3
4
5
6
7
8
9
10
11
|
> db.post.
find
({
"id"
:{
"$ne"
:8}})
{
"_id"
: ObjectId(
"54a530c3ff0df3732bac1681"
),
"id"
: 2,
"name"
:
"joe"
,
"age"
: 30,
"sex"
: 1,
"school"
:
"marry"
}
{
"_id"
: ObjectId(
"54a530c3ff0df3732bac1680"
),
"id"
: 1,
"name"
:
"joe"
,
"age"
: 30,
"comments"
: [
"test2"
,
"test9"
,
"test5"
],
"sex"
: 1,
"school"
:
"marry"
}
{
"_id"
: ObjectId(
"54a9700e1b5afd45354fd086"
),
"id"
: 3,
"test3"
: 3 }
{
"_id"
: ObjectId(
"54a9701c1b5afd45354fd087"
),
"id"
: 4,
"test4"
: 4 }
{
"_id"
: ObjectId(
"54a970281b5afd45354fd088"
),
"id"
: 5,
"test5"
: 5 }
{
"_id"
: ObjectId(
"54a970351b5afd45354fd089"
),
"id"
: 6,
"test6"
: 6 }
{
"_id"
: ObjectId(
"54a970781b5afd45354fd08a"
),
"id"
: 7,
"test7"
: 7 }
{
"_id"
: ObjectId(
"54a970901b5afd45354fd08c"
),
"id"
: 9,
"test9"
: 9 }
{
"_id"
: ObjectId(
"54a9709c1b5afd45354fd08d"
),
"id"
: 10,
"test10"
: 10 }
>
|
$in可以查询多个键值:
1
2
3
4
5
|
> db.post.
find
({
"id"
:{
"$in"
:[4,2,8]}})
{
"_id"
: ObjectId(
"54a530c3ff0df3732bac1681"
),
"id"
: 2,
"name"
:
"joe"
,
"age"
: 30,
"sex"
: 1,
"school"
:
"marry"
}
{
"_id"
: ObjectId(
"54a9701c1b5afd45354fd087"
),
"id"
: 4,
"test4"
: 4 }
{
"_id"
: ObjectId(
"54a970831b5afd45354fd08b"
),
"id"
: 8,
"test8"
: 8 }
>
|
$nin用法:
1
2
3
4
5
6
7
8
9
|
> db.post.
find
({
"id"
:{
"$nin"
:[4,2,8]}})
{
"_id"
: ObjectId(
"54a530c3ff0df3732bac1680"
),
"id"
: 1,
"name"
:
"joe"
,
"age"
: 30,
"comments"
: [
"test2"
,
"test9"
,
"test5"
],
"sex"
: 1,
"school"
:
"marry"
}
{
"_id"
: ObjectId(
"54a9700e1b5afd45354fd086"
),
"id"
: 3,
"test3"
: 3 }
{
"_id"
: ObjectId(
"54a970281b5afd45354fd088"
),
"id"
: 5,
"test5"
: 5 }
{
"_id"
: ObjectId(
"54a970351b5afd45354fd089"
),
"id"
: 6,
"test6"
: 6 }
{
"_id"
: ObjectId(
"54a970781b5afd45354fd08a"
),
"id"
: 7,
"test7"
: 7 }
{
"_id"
: ObjectId(
"54a970901b5afd45354fd08c"
),
"id"
: 9,
"test9"
: 9 }
{
"_id"
: ObjectId(
"54a9709c1b5afd45354fd08d"
),
"id"
: 10,
"test10"
: 10 }
>
|
$or的用法:
1
2
3
4
5
|
> db.post.
find
({
"$or"
:[{
"sex"
:1},{
"id"
:5}]})
{
"_id"
: ObjectId(
"54a530c3ff0df3732bac1681"
),
"id"
: 2,
"name"
:
"joe"
,
"age"
: 30,
"sex"
: 1,
"school"
:
"marry"
}
{
"_id"
: ObjectId(
"54a530c3ff0df3732bac1680"
),
"id"
: 1,
"name"
:
"joe"
,
"age"
: 30,
"comments"
: [
"test2"
,
"test9"
,
"test5"
],
"sex"
: 1,
"school"
:
"marry"
}
{
"_id"
: ObjectId(
"54a970281b5afd45354fd088"
),
"id"
: 5,
"test5"
: 5 }
>
|
$mod会将查询的值除以第一个给定的值,若余数匹配第二个值,则匹配成功;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
> db.post.
find
()
{
"_id"
: ObjectId(
"54a530c3ff0df3732bac1681"
),
"id"
: 2,
"name"
:
"joe"
,
"age"
: 30,
"sex"
: 1,
"school"
:
"marry"
}
{
"_id"
: ObjectId(
"54a530c3ff0df3732bac1680"
),
"id"
: 1,
"name"
:
"joe"
,
"age"
: 30,
"comments"
: [
"test2"
,
"test9"
,
"test5"
],
"sex"
: 1,
"school"
:
"marry"
}
{
"_id"
: ObjectId(
"54a9700e1b5afd45354fd086"
),
"id"
: 3,
"test3"
: 3 }
{
"_id"
: ObjectId(
"54a9701c1b5afd45354fd087"
),
"id"
: 4,
"test4"
: 4 }
{
"_id"
: ObjectId(
"54a970281b5afd45354fd088"
),
"id"
: 5,
"test5"
: 5 }
{
"_id"
: ObjectId(
"54a970351b5afd45354fd089"
),
"id"
: 6,
"test6"
: 6 }
{
"_id"
: ObjectId(
"54a970781b5afd45354fd08a"
),
"id"
: 7,
"test7"
: 7 }
{
"_id"
: ObjectId(
"54a970831b5afd45354fd08b"
),
"id"
: 8,
"test8"
: 8 }
{
"_id"
: ObjectId(
"54a970901b5afd45354fd08c"
),
"id"
: 9,
"test9"
: 9 }
{
"_id"
: ObjectId(
"54a9709c1b5afd45354fd08d"
),
"id"
: 10,
"test10"
: 10 }
{
"_id"
: ObjectId(
"54aa8a90652d8bdfa0566d34"
),
"id"
: 11,
"test10"
: 11 }
> db.post.
find
({
"id"
:{$mod:[5,1]}})
{
"_id"
: ObjectId(
"54a530c3ff0df3732bac1680"
),
"id"
: 1,
"name"
:
"joe"
,
"age"
: 30,
"comments"
: [
"test2"
,
"test9"
,
"test5"
],
"sex"
: 1,
"school"
:
"marry"
}
{
"_id"
: ObjectId(
"54a970351b5afd45354fd089"
),
"id"
: 6,
"test6"
: 6 }
{
"_id"
: ObjectId(
"54aa8a90652d8bdfa0566d34"
),
"id"
: 11,
"test10"
: 11 }
>
|
本文转自 bannerpei 51CTO博客,原文链接:http://blog.51cto.com/281816327/1599446,如需转载请自行联系原作者