MongoDB Node.js 驱动中的集合操作详解
前言
MongoDB 是一个流行的 NoSQL 数据库,而 Node.js 驱动是与 MongoDB 交互的重要工具。本文将深入讲解 MongoDB Node.js 驱动中集合(Collection)的相关操作,帮助开发者更好地理解和使用这一功能。
集合对象基础
集合对象是 MongoDB 中指向特定集合的指针。在进行数据插入、查询等操作前,必须获取有效的集合对象。
集合命名规则
- 不能以点(.)开头或结尾
- 不能包含美元符号($)
- 例如:
.tes$t
是无效的集合名
创建集合
使用 createCollection
方法创建新集合:
db.createCollection(name[, options], callback)
参数说明:
name
: 集合名称options
: 配置选项callback
: 回调函数,接收错误对象和新创建的集合对象
示例代码:
db.createCollection("test", function(err, collection) {
collection.insert({"test": "value"});
});
严格模式
- 开启严格模式时,如果集合已存在会报错
- 关闭严格模式(默认)时,会返回已存在集合的指针而不清空数据
集合创建选项
创建集合时可以指定选项:
{
raw: false // 是否以 BSON 二进制 Buffer 对象返回文档
}
集合属性
集合对象有两个重要属性:
collectionName
: 集合名称(不包含数据库前缀)db
: 指向所属数据库对象的指针
使用示例:
console.log("Collection name: " + collection.collectionName);
集合列表操作
获取集合名称列表
使用 collectionNames
方法:
db.collectionNames(callback);
回调函数接收:
- 错误对象
- 包含完整集合名称的数组(格式为"数据库名.集合名")
注意:
- 系统集合以"system"为前缀,如"posts.system.indexes"
- 不要随意修改系统集合
完整示例:
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err) throw err;
db.collectionNames(function(err, collections) {
console.log(collections);
});
});
获取集合对象列表
使用 collections
方法:
db.collections(callback);
回调函数接收:
- 错误对象
- 集合对象数组
选择已有集合
使用 collection
方法获取已有集合:
db.collection(name[, options], callback);
选项与创建集合时相同。如果关闭严格模式且集合不存在,会自动创建新集合。
重命名集合
使用 rename
方法:
collection.rename(new_name, callback);
// 或带覆盖选项
collection.rename(new_name, {dropTarget: true}, callback);
删除操作
删除文档
使用 remove
方法删除集合中的文档:
collection.remove([query[, options]], callback);
参数说明:
query
: 匹配要删除文档的查询条件(不传则删除所有文档)options
: 高级选项callback
: 接收错误对象和被删除文档数量
删除集合
有两种方式删除整个集合:
- 使用集合的
drop
方法:
collection.drop(callback);
- 使用数据库的
dropCollection
方法:
db.dropCollection(collection_name, callback);
总结
本文详细介绍了 MongoDB Node.js 驱动中集合的各种操作,包括创建、查询、选择和删除等。掌握这些基础操作是使用 MongoDB 进行开发的关键。在实际应用中,建议结合具体业务场景选择合适的操作方法,并注意集合命名规范和系统集合的特殊性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考