因此,我正在开发一个运行纠缠测试的PowerShell脚本.该脚本使用Mongo数据库连接到Kubernetes Pod.目标是判断数据库中的集合是否为空.我对代码一直到"返回计数"行都很满意.我知道在Shell中没有Return命令,但我把它放进go 是为了说明.

我实际上是在try 将"count"值从"kubectl exec"中提取到PowerShell代码中.这个是可能的吗?

Context "Foo collection" {
It "should have no documents"{

    kubectl exec -it $podName -n mongo `
        -- mongosh -u root -p $mongoSecret `
        --eval "`
        db = db.getSiblingDB('thisOne')
        collection = db.getCollection('foo')
        count = collection.countDocuments({}, {limit: 1})

        return count
    "

    $docs = count
    $docs | Should -Be 0
}

}

推荐答案

kubectl的返回值存储在变量中起到了作用.eval将脚本中的最终命令的返回输出到stdout.但是,需要使用--quiet参数来获得没有MongoDBshell "Noise"段落的返回值.

Context "Foo collection" {
    It "should have no documents"{

        $count = kubectl exec -it $podName -n mongo `
            -- mongosh --quiet -u root -p $mongoSecret `
            --eval "`
            db = db.getSiblingDB('thisOne')
            collection = db.getCollection('foo')
            collection.countDocuments({}, {limit: 1})
            "

        $count | Should -Be 0
    }
}

Mongodb相关问答推荐

会话的Mongo-go驱动程序版本.Copy()

如何在Mongo Aggregate Query中创建集合的对象ID数组,并在列表中查找另一个集合中的ID

没有文档的MongoDB集合中的不一致,但当我执行count()时,它告诉我有15个文档

如何填充Mongoose中的嵌套引用

无法配置数据源:未指定url属性,无法为 MongoDb 配置嵌入数据源

Mongoose 查询以获取内部数组和该内部数组中的特定元素

MongoDB 按日期时间字段查询 1h 间隔

随着时间的推移在 mongodb 中获得

使用golang的MongoDB错误无法访问服务器

mongodb - 查找包含至少 3 个填充数组的记录

如何在 Mongo 聚合管道中获取限制之前的计数

Mongoose 架构引用和未定义类型ObjectID

Mongodb将重音字符匹配为基础字符

mongodb - 查找具有最接近整数值的文档

为什么不建议在 MongoDB 中使用服务器端存储函数?

是否有适用于 Linux 的 MongoDB GUI 桌面应用程序?

MongoDB:多个 $elemMatch

MongoDb 数据库与集合

mongodb 的计数性能

mongoose字符串到 ObjectID