2022MongoDB3-find用法

find({})第一个参数条件:

查询逻辑:

1查询一个集合中所有数据,默认显示顺序是按照录入的顺序显示的

db.users.find();

2显示一条数据,默认只显示自然序的第一条:

db.users.findOne();

3查询name=admin的数据

> db.users.find({"name":"admin"});

4查询年龄大于30的数据:

db.users.find({"age":{"$gt":30}});

5查询年龄大于等于30的数据:

db.users.find({"age":{"$gte":30}});

6查询年龄小于等于30的数据:

db.users.find({"age":{"$lte":30}});

7查询年龄小于30的数据:

db.users.find({"age":{"$lt":30}});

8查询年龄不等于30的数据:

db.users.find({"age":{"$ne":30}});

9查找年龄等于32的数据:

db.users.find({"age":{"$eq":32}});

10查询年龄大于30并且年龄小于40的数据:

du.users.find({"$and":[{},{}]});
db.users.find({"$and":[{"age":{"$gt":30}},{"age":{"$lt":40}}]});

11查询年龄小于30或者大于40的数据

db.users.find({"$or":[{},{}]});
db.users.find({"$or":[{"age":{"$lt":30}},{"age":{"$gt":40}}]});

12查询年龄小于30的用户或者查询年龄大于31的admin用户:

db.users.find({"$or":[{},{}]})
db.users.find({"$or":[{},{"$and":[]}]})
db.users.find({"$or":[{},{"$and":[{},{}]}]})
db.users.find({"$or":[{},{"$and":[{"name":"admin"},{"age":{"$gt":31}}]}]})
db.users.find({"$or":[{"age":{"$lt":30}},{"$and":[{"name":"admin"},{"age":{"$gt":31}}]}]});

13查询名字是admin并且年龄大于31的用户:

db.users.find({"age":{"$gt":31},"name":"admin"});

find({},{第二个参数})第二个参数投影:

什么叫投影?例如我从users表查询多个字段select id, name from users;

1查询年龄大于31名字为admin的用户,投影条件将name设为真:

> db.users.find({"age":{"$gt":31},"name":"admin"},{"name":1});
{ "_id" : ObjectId("61d93287adfe46eefd559f2b"), "name" : "admin" }
#投影条件是将age设为真
> db.users.find({"age":{"$gt":31},"name":"admin"},{"age":1});
{ "_id" : ObjectId("61d93287adfe46eefd559f2b"), "age" : 32 }
> 
#多个参数时,只有id可以取反投影(即设为假),其它字段不可以设为假
> db.users.find({"age":{"$gt":31},"name":"admin"},{"age":1,"_id":0});
{ "age" : 32 }
> 
#一个参数时,取反投影的字段不打印
> db.users.find({"age":{"$gt":31},"name":"admin"},{"age":0});
{ "_id" : ObjectId("61d93287adfe46eefd559f2b"), "name" : "admin" }
>

2find().pretty等价于findOne(),例如:

#插入一条信息
> db.users.insert({"name":"test","age":20,"gender":"male","hobbies":["eat","sleep"],"phone":13512765432});
WriteResult({ "nInserted" : 1 })

#find()查找
> db.users.find({"name":"test"});
{ "_id" : ObjectId("61db9b12d16a4f490e1c825c"), "name" : "test", "age" : 20, "gender" : "male", "hobbies" : [ "eat", "sleep" ], "phone" : 13512765432 }
> 

#find().pretty()可以美化输出格式
> db.users.find({"name":"test"}).pretty();
{
    "_id" : ObjectId("61db9b12d16a4f490e1c825c"),
    "name" : "test",
    "age" : 20,
    "gender" : "male",
    "hobbies" : [
        "eat",
        "sleep"
    ],
    "phone" : 13512765432
}
> 

#find().pretty()等价于findOne()s
> db.users.findOne({"name":"test"});
{
    "_id" : ObjectId("61db9b12d16a4f490e1c825c"),
    "name" : "test",
    "age" : 20,
    "gender" : "male",
    "hobbies" : [
        "eat",
        "sleep"
    ],
    "phone" : 13512765432
}
> 

 

posted @ 2022-01-10 10:57  linuxTang  阅读(110)  评论(0)    收藏  举报