数据库

 首页 > 数据库 > MongoDB > MongoDB数据库条件查询

MongoDB数据库条件查询

分享到:
【字体:
导读:
         摘要:下面的示例就是说明如何执行一个类似SQL的查询,并演示了怎么在MongoDB里实现.这是在MongoDBshell里查询,当然你也可以用其他的应用程序驱动或者语言来实现:SELECT*FROMthingsWHEREnamemongodb.things.find({name:mongo}).forEach(printjs...

MongoDB数据库条件查询

下面的示例就是说明如何执行一个类似SQL的查询,  并演示了怎么在  MongoDB  里实现.  

是在MongoDB shell里查询,  当然你也可以用其他的应用程序驱动或者语言来实现: 

  SELECT * FROM things WHERE name="mongo" 

> db.things.find({name:"mongo"}).forEach(printjson); 

{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" } 

 

SELECT * FROM things WHERE x=4 

> db.things.find({x:4}).forEach(printjson); 

{ "_id" : ObjectId("4c220a42f3924d31102bd856"), "x" : 4, "j" : 1 } 

{ "_id" : ObjectId("4c220a42f3924d31102bd857"), "x" : 4, "j" : 2 } 

{ "_id" : ObjectId("4c220a42f3924d31102bd858"), "x" : 4, "j" : 3 } 

{ "_id" : ObjectId("4c220a42f3924d31102bd859"), "x" : 4, "j" : 4 } 

{ "_id" : ObjectId("4c220a42f3924d31102bd85a"), "x" : 4, "j" : 5 } 

查询条件是  { a:A, b:B,  …  }  类似  “where a==A and b==B and …”. 

 

上面显示的是所有的元素,  当然我们也可以返回特定的元素,  类似于返回表里某字段的值, 

只需要在  find({x:4})  里指定元素的名字 

SELECT j FROM things WHERE x=4 

> db.things.find({x:4}, {j:true}).forEach(printjson); 

 

{ "_id" : ObjectId("4c220a42f3924d31102bd856"), "j" : 1 } 

{ "_id" : ObjectId("4c220a42f3924d31102bd857"), "j" : 2 } 

{ "_id" : ObjectId("4c220a42f3924d31102bd858"), "j" : 3 } 

{ "_id" : ObjectId("4c220a42f3924d31102bd859"), "j" : 4 } 

{ "_id" : ObjectId("4c220a42f3924d31102bd85a"), "j" : 5 } 

findOne()语法 

为了方便考虑,  MongoDB  shell 避免游标可能带来的开销,  提供一个findOne() 函数.  这个函

数和  find()  函数一样,  不过它返回的是游标里第一条数据,  或者返回null,即空数据. 

 

作为一个例子,  name=”mongo”  可以用很多方法来实现,  可以用  next()  来循环游标或者当

做数组返回第一个元素. 

 

但是用  findOne()  方法则更简单和高效: 

> printjson(db.things.findOne({name:"mongo"})); 

{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" } 

4.6.4 通过limit 限制结果集数量 

如果需要限制结果集的长度,  那么可以调用  limit  方法. 

这是强烈推荐解决性能问题的方法,  就是通过限制条数来减少网络传输,  例如: 

> db.things.find().limit(3); 

{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" } 

{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 } 

{ "_id" : ObjectId("4c220a42f3924d31102bd856"), "x" : 4, "j" : 1 } 

修改记录 

将name是mongo的记录的name修改为mongo_new 

> db.things.update({name:"mongo"},{$set:{name:"mongo_new"}}); 

 

我们来查询一下是否改过来了 

> db.things.find();                                                                                    

{ "_id" : ObjectId("4faa9e7dedd27e6d86d86371"), "x" : 3 } 

{ "_id" : ObjectId("4faa9e7bedd27e6d86d86370"), "name" : "mongo_new" } 

删除记录 

将用户name是mongo_new的记录从集合things中删除 

 

> db.things.remove({name:"mongo_new"}); 

> db.things.find();                                         

{ "_id" : ObjectId("4faa9e7dedd27e6d86d86371"), "x" : 3 } 

经验证,该记录确实被删除了 

MongoDB数据库条件查询
分享到:
MongoDB数据库查询指南
MongoDB数据库查询指南 1.多查询条件 向查询文档加入多个键/值对的方式可以实现多个查询条件的组合。例如要查询所有用户名为“joe”且年龄为27岁的用户,可以像下面这样:  >db.users.find({“username” : “joe”, “age” : 27}) 2.指定返回结果的键 例如,如果只需要用户集合的“username”和“email”...
MongoDB数据库查询高级使用指南
MongoDB数据库查询高级使用指南     面向文档的 NoSQL 数据库主要解决的问题不是高性能的并发读写,而是保证海量数据存储的同时,具有良好的查询性能。     MongoDB 几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 1.1 条件查询 = 这个操作符就不用多解释了,最常用也是最简单的 ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……