db.getCollection()
定义
db.getCollection(name)
返回在功能上等同于使用
db.<collectionName>
语法的集合或视图对象。 该方法对于其名称可能与mongosh
本身交互的集合或视图非常有用,例如以_
开头或与数据库shell方法匹配的名称。db.getCollection()
方法具有以下参数:Parameter类型说明name
字符串
集合的名称。
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
行为
db.getCollection()
对象可以访问任何集合方法。
指定的集合可能存在于服务器上,也可能不存在。如果该集合不存在,则 MongoDB 会将其作为写入操作(如 db.collection.insertOne()
)的一部分隐式创建。
例子
以下示例使用 db.getCollection()
访问 auth
集合并向其中插入一份文档。
var authColl = db.getCollection("auth") authColl.insertOne( { usrName : "John Doe", usrDept : "Sales", usrTitle : "Executive Account Manager", authLevel : 4, authDept : [ "Sales", "Customers"] } )
此操作将返回:
{ "acknowledged" : true, "insertedId" : ObjectId("569525e144fe66d60b772763") }
由于与数据库方法db.getCollection("auth")
db.auth()
发生名称冲突,上一示例需要使用 }。直接调用db.auth
来执行插入操作将引用db.auth()
方法并出错。
以下示例尝试了相同的操作,但未使用 db.getCollection()
方法:
db.auth.insertOne( { usrName : "John Doe", usrDept : "Sales", usrTitle : "Executive Account Manager", authLevel : 4, authDept : [ "Sales", "Customers"] } )
操作错误,因为 db.auth()
方法没有 insertOne
方法。