前言:
现在咱们对“mongodb查询sql”大致比较关怀,我们都想要剖析一些“mongodb查询sql”的相关内容。那么小编同时在网络上搜集了一些关于“mongodb查询sql””的相关内容,希望各位老铁们能喜欢,你们一起来了解一下吧!了解最常用 MongoDB 查询的完整指南
MongoDB 是领先的 NoSQL 数据库之一。 每个集合都包含许多 JSON 文档。 任何可以用 JSON 文档表达的数据模型都可以很容易地存储在 MongoDB 中。
MongoDB 查询
MongoDB Query 是一种从 MongoDB 数据库中获取数据的方法。 它类似于 SQL 数据库语言中的 SQL 查询。 在 MongoDB 查询中,您可以使用将用于从数据库中检索数据的条件。
MongoDB 查询语法
MongoDB 查询的基本语法如下所示。
db.COLLECTION_NAME.find({});
这里,
COLLECTION_NAME:是数据库中集合或表的名称
MongoDB 查询示例
在执行 MongoDB 查询之前,我们必须插入一些数据。 我们可以使用 insert 或 insertMany 将数据插入到数据库集合中。
考虑集合名称 Persons 中的以下数据。
db.Persons.insert({ _id : "1", Name: "John", Age: 23, Income : 1000});db.Persons.insert({ _id : "2", Name: "Don", Age: 27, Income : 3000});db.Persons.insert({ _id : "3", Name: "Kumar", Age: 21, Income : 4500});db.Persons.insert({ _id : "4", Name: "Roky", Age: 18, Income : 5000});db.Persons.insert({ _id : "5", Name: "Smith", Age: 19, Income : 2000});db.Persons.insert({ _id : "6", Name: "Anik", Age: 35, Income : 1500});db.Persons.insert({ _id : "7", Name: "Rabi", Age: 32, Income : 2500});db.Persons.insert({ _id : "8", Name: "Akash", Age: 22, Income : 7000});
Find()
此方法用于显示特定集合中存在的所有文档。 如果我们在 mongo shell 中运行以下 MongoDB 查询,
db.Persons.find({});
查询结果如下
{ "_id" : "1", "Name" : "John", "Age" : 23, "Income" : 1000 }{ "_id" : "2", "Name" : "Don", "Age" : 27, "Income" : 3000 }{ "_id" : "3", "Name" : "Kumar", "Age" : 21, "Income" : 4500 }{ "_id" : "4", "Name" : "Roky", "Age" : 18, "Income" : 5000 }{ "_id" : "5", "Name" : "Smith", "Age" : 19, "Income" : 2000 }{ "_id" : "6", "Name" : "Anik", "Age" : 35, "Income" : 1500 }{ "_id" : "7", "Name" : "Rabi", "Age" : 32, "Income" : 2500 }{ "_id" : "8", "Name" : "Akash", "Age" : 22, "Income" : 7000 }
如果我们想得到名称为 John 的结果,那么查询应该如下所示。
db.Persons.find({Name: "John"});
查询结果如下
{ "_id" : "1", "Name" : "John", "Age" : 23, "Income" : 1000 }
我们也可以使用与 Find() 非常相似的 FindOne()。 但在这种情况下,它只检索一个文档,实际上是第一个符合条件的文档。
查询如下所示
db.Persons.findOne({});
查询的结果是集合的第一个文档。
{ "_id" : "1", "Name" : "John", "Age" : 23, "Income" : 1000 }
使用布尔条件的 MongoDB 查询
我们可以在 MongoDB 查询中使用 $and、$or、$in 和 $not 从数据库中检索数据。
AND查询
这与带有 where 子句的 SQL 查询非常相似,例如,
SELECT * FROM Persons WHERE Name = "John" AND Age >= 20;
AND查询的基本语法如下
db.COLLECTION_NAME.find( { $and: [ { key: value }, { key: value } ]})
如果我们要获取名字为 John 且年龄大于 20 的文档。查询如下,
db.Persons.find( { "Name": "John", "Age": { "$gte": 20 }})
查询结果如下
OR 查询
这与带有 where 子句的 SQL 查询非常相似,例如,
SELECT * FROM Persons WHERE Name = "Smith" OR Age > 23;
OR查询的基本语法如下
db.COLLECTION_NAME.find( { $or: [ { key: value }, { key: value } ]})
如果我们要获取姓名为Smith或年龄大于23的文档。查询如下,
db.Persons.find( { "$or": [ { "Name": "Smith", }, { "Age": { "$gt": 23 } } ]})
查询结果如下
AND OR 查询
这与带有 where 子句的 SQL 查询非常相似,例如,
SELECT * FROM Persons WHERE Name = "Rabi" OR Age > 23 AND Income >= 2000;
如果我们要获取name为Rabi或age大于23且Incomement大于等于2000的文档,查询如下,
db.Persons.find( { "Income": { "$gt": 2000 }, "$or": [ { "Name": "Rabi" }, { "Age":{ "$gt": 23 } } ]})
查询结果如下
IN 查询
$in 查询用于我们必须使用多个 OR 查询的地方。 它与带有 where 子句的 SQL 查询非常相似,例如,
SELECT * FROM Persons WHERE Name IN ("Smith","Kumar");
如果我们想要获取名称为 Smith 或 Kumar 的文件。 查询如下,
db.Persons.find( { Name: {"$in": ["Smith","Kumar"]}})
查询结果如下
NOT 查询
$not 运算符用于对指定的运算符表达式执行逻辑 NOT 运算,并仅选择或检索那些与给定运算符表达式不匹配的文档。
如果我们想获取名称不是以“A”开头的文档。 查询如下,
db.Persons.find( { Name: {"$not": /^A.*/} })
查询结果如下
概括
这些是我们讨论的基本 MongoDB 查询。 还有一些其他查询选项,如投影、限制、跳过、排序等,也与 Find() 一起使用。 还有一些其他高级查询选项,稍后将讨论。
谢谢阅读!
关注七爪网,获取更多APP/小程序/网站源码资源!
标签: #mongodb查询sql