Docs 菜单

db.getCollection()

db.getCollection(name)

返回在功能上等同于采用 db.<collectionName> 语法的集合视图对象。该方法对于名称可能与 mongosh 本身交互的集合或视图有用,例如以 _ 开头的名称或与数据库 shell 方法匹配的名称。

db.getCollection() 方法具有以下参数:

Parameter
类型
说明

name

字符串

集合的名称。

此方法可用于以下环境中托管的部署:

注意

所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令

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 方法。

提示

另请参阅: