MongoDB操作函数详解
1. 关闭MongoDB连接(close)
在操作MongoDB时,关闭连接是一个重要的步骤。不过需要注意的是,
close
函数在未来的版本中将会被移除,建议使用MongoDB® C++ 接口的
close
函数。
语法 :
close(conn)
描述
:
close(conn)
用于关闭MongoDB连接。
示例 :
% 创建MongoDB连接
server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname);
% 验证连接
isopen(conn); % 返回1表示连接成功
% 统计集合中的文档数量
collection = "employee";
n = count(conn,collection);
% 关闭连接
close(conn);
输入参数
:
| 参数 | 描述 |
| ---- | ---- |
| conn | MongoDB连接,指定为一个
mongo
对象 |
2. 检查MongoDB连接是否打开(isopen)
isopen
函数同样会在未来版本中被移除,建议使用MongoDB® C++ 接口的
isopen
函数。
语法 :
i = isopen(conn)
描述
:
如果MongoDB连接打开,
i = isopen(conn)
返回1;如果关闭,则返回0。
示例 :
% 创建MongoDB连接
server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname);
% 验证连接
isopen(conn); % 返回1表示连接成功
% 统计集合中的文档数量
collection = "employee";
n = count(conn,collection);
% 关闭连接
close(conn);
% 再次验证连接
isopen(conn); % 返回0表示连接已关闭
输入参数
:
| 参数 | 描述 |
| ---- | ---- |
| conn | MongoDB连接,指定为一个
mongo
对象 |
3. 创建MongoDB集合(createCollection)
createCollection
函数在未来版本中会被移除,建议使用MongoDB® C++ 接口的
createCollection
函数。
语法 :
createCollection(conn,collection)
描述
:
createCollection(conn,collection)
使用MongoDB连接在数据库中创建一个集合。
示例 :
% 创建MongoDB连接
server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname);
% 验证连接
isopen(conn); % 返回1表示连接成功
% 创建集合
collection = "taxidata";
createCollection(conn,collection);
% 显示集合
conn.CollectionNames;
% 关闭连接
close(conn);
输入参数
:
| 参数 | 描述 |
| ---- | ---- |
| conn | MongoDB连接,指定为一个
mongo
对象 |
| collection | 集合名称,指定为一个字符串标量 |
mermaid流程图 :
graph TD;
A[创建MongoDB连接] --> B[验证连接];
B --> C[创建集合];
C --> D[显示集合];
D --> E[关闭连接];
4. 删除MongoDB集合(dropCollection)
dropCollection
函数在未来版本中会被移除,建议使用MongoDB® C++ 接口的
dropCollection
函数。
语法 :
dropCollection(conn,collection)
描述
:
dropCollection(conn,collection)
使用MongoDB连接从数据库中删除一个已存在的集合。
示例 :
% 创建MongoDB连接
server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname);
% 验证连接
isopen(conn); % 返回1表示连接成功
% 显示删除前的集合
conn.CollectionNames;
% 删除集合
collection = "taxidata";
dropCollection(conn,collection);
% 显示删除后的集合
conn.CollectionNames;
% 关闭连接
close(conn);
输入参数
:
| 参数 | 描述 |
| ---- | ---- |
| conn | MongoDB连接,指定为一个
mongo
对象 |
| collection | 集合名称,指定为一个字符串标量 |
5. 统计MongoDB集合中的文档数量(count)
count
函数在未来版本中会被移除,建议使用MongoDB® C++ 接口的
count
函数。
语法 :
n = count(conn,collection)
n = count(conn,collection,'Query',mongoquery)
描述
:
-
n = count(conn,collection)
返回集合中的文档总数。
-
n = count(conn,collection,'Query',mongoquery)
返回执行MongoDB查询后的文档总数。
示例 :
% 创建MongoDB连接
server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname);
% 验证连接
isopen(conn); % 返回1表示连接成功
% 统计集合中的文档数量
collection = "employee";
n = count(conn,collection);
% 统计查询结果中的文档数量
mongoquery = '{"department":"Sales"}';
n_query = count(conn,collection,'Query',mongoquery);
% 关闭连接
close(conn);
输入参数
:
| 参数 | 描述 |
| ---- | ---- |
| conn | MongoDB连接,指定为一个
mongo
对象 |
| collection | 集合名称,指定为一个字符串标量 |
| mongoquery | MongoDB查询,指定为一个字符串标量或字符向量,使用JSON风格的字符串进行查询 |
输出参数
:
| 参数 | 描述 |
| ---- | ---- |
| n | MongoDB集合或查询中的文档总数,返回为一个数值标量 |
6. 获取MongoDB集合中字段的不同值(distinct)
distinct
函数在未来版本中会被移除且无替代函数。
语法 :
values = distinct(conn,collection,field)
values = distinct(conn,collection,field,'Query',mongoquery)
描述
:
-
values = distinct(conn,collection,field)
返回集合中某个字段的不同值。
-
values = distinct(conn,collection,field,'Query',mongoquery)
返回执行MongoDB查询后某个字段的不同值。
示例 :
% 创建MongoDB连接
server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname);
% 验证连接
isopen(conn); % 返回1表示连接成功
% 获取集合中字段的不同值
collection = "employee";
field = "salary";
values = distinct(conn,collection,field);
% 获取查询结果中字段的不同值
mongoquery = '{"department":"Sales"}';
values_query = distinct(conn,collection,field,'Query',mongoquery);
% 关闭连接
close(conn);
输入参数
:
| 参数 | 描述 |
| ---- | ---- |
| conn | MongoDB连接,指定为一个
mongo
对象 |
| collection | 集合名称,指定为一个字符串标量 |
| field | 集合中的字段,指定为一个字符串标量 |
| mongoquery | MongoDB查询,指定为一个字符串标量或字符向量,使用JSON风格的字符串进行查询 |
输出参数
:
| 参数 | 描述 |
| ---- | ---- |
| values | MongoDB集合或查询中某个字段的不同值,返回为一个单元格数组 |
7. 检索MongoDB集合中的文档(find)
find
函数在未来版本中会被移除,建议使用MongoDB® C++ 接口的
find
函数。
语法 :
documents = find(conn,collection)
documents = find(conn,collection,Name,Value)
描述
:
-
documents = find(conn,collection)
返回集合中的所有文档。
-
documents = find(conn,collection,Name,Value)
可以通过指定名称 - 值对参数来设置额外的选项,例如
'Limit',10
可以限制返回的文档数量为10个。
示例
:
以下是几个不同使用场景的示例:
检索集合中的所有文档
% 创建MongoDB连接
server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname);
% 验证连接
isopen(conn); % 返回1表示连接成功
% 指定集合
collection = "employee";
documents = find(conn,collection);
% 显示第一个文档
documents(1)
% 关闭连接
close(conn);
检索MongoDB查询中的所有文档
% 创建MongoDB连接
server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname);
% 验证连接
isopen(conn); % 返回1表示连接成功
% 指定集合
collection = "employee";
mongoquery = '{"department":"Sales"}';
documents = find(conn,collection,'Query',mongoquery);
% 关闭连接
close(conn);
对检索到的文档进行排序
% 创建MongoDB连接
server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname);
% 验证连接
isopen(conn); % 返回1表示连接成功
% 指定集合和查询
collection = "employee";
mongoquery = '{"department":"Sales"}';
sortquery = '{"salary":1.0}';
documents = find(conn,collection,'Query',mongoquery,'Sort',sortquery);
% 显示前两个员工的排序后的工资
documents(1:2).salary
% 关闭连接
close(conn);
检索集合中特定字段的文档
% 创建MongoDB连接
server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname);
% 验证连接
isopen(conn); % 返回1表示连接成功
% 指定集合和要检索的字段
collection = "employee";
fields = '{"department":1.0,"salary":1.0}';
documents = find(conn,collection,'Projection',fields);
% 显示第一个文档
documents(1)
% 关闭连接
close(conn);
使用偏移量检索特定数量的文档
% 创建MongoDB连接
server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname);
% 验证连接
isopen(conn); % 返回1表示连接成功
% 指定集合
collection = "employee";
documents = find(conn,collection,'Skip',5,'Limit',10);
% 关闭连接
close(conn);
输入参数
:
| 参数 | 描述 |
| ---- | ---- |
| conn | MongoDB连接,指定为一个
mongo
对象 |
| collection | 集合名称,指定为一个字符串标量 |
名称 - 值对参数
:
| 参数名称 | 描述 | 示例 |
| ---- | ---- | ---- |
| Query | MongoDB查询,使用JSON风格的字符串进行查询 |
'Query','{"department":"Sales"}'
|
| Projection | 每个文档中要检索的字段,使用JSON风格的字符串描述 |
'Projection','{"department":1.0,"salary":1.0}'
|
| Sort | 文档的排序字段,使用JSON风格的字符串描述 |
'Sort','{"department":1.0}'
|
| Skip | 从返回文档的开头开始的偏移量 |
'Skip',5
|
| Limit | 要返回的文档数量 |
'Limit',10
|
输出参数
:
| 参数 | 描述 |
| ---- | ---- |
| documents | MongoDB集合或查询中的文档,返回为结构体、结构体数组或结构体的单元格数组 |
mermaid流程图 :
graph TD;
A[创建MongoDB连接] --> B[验证连接];
B --> C{选择操作};
C -->|检索所有文档| D[指定集合并检索];
C -->|检索查询文档| E[指定集合和查询并检索];
C -->|排序检索文档| F[指定集合、查询和排序条件并检索];
C -->|检索特定字段文档| G[指定集合和字段并检索];
C -->|使用偏移量检索| H[指定集合、Skip和Limit并检索];
D --> I[处理结果];
E --> I;
F --> I;
G --> I;
H --> I;
I --> J[关闭连接];
总结
本文详细介绍了多个用于操作MongoDB的函数,包括关闭连接、检查连接状态、创建和删除集合、统计文档数量、获取字段不同值以及检索文档等。这些函数在未来的版本中大多会被移除,建议使用MongoDB® C++ 接口的相应函数。在使用这些函数时,要注意输入参数和名称 - 值对参数的正确设置,以实现不同的操作需求。同时,对于
find
函数,当需要检索大量文档时,要注意内存使用问题,可采用分批检索的方式避免内存不足的错误。
超级会员免费看
1213

被折叠的 条评论
为什么被折叠?



