龙空技术网

七爪源码:基本 MongoDB 查询

庄志炎 202

前言:

现在咱们对“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