- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
要运行聚合查询,可以使用以下任一方法:
db.collectionName.aggregate(query1);
或
db.runCommand(query2)
但是今天早上我注意到了一些奇怪的事情。虽然这样:
db.runCommand(
{
"aggregate":"collectionName",
allowDiskUse: true,
"pipeline":[
{
"$match":{
"field":param
}
}
]
});
失败并出现错误:
{
"ok" : 0.0,
"errmsg" : "aggregation result exceeds maximum document size (16MB)",
"code" : 16389,
"codeName" : "Location16389"
}
这个:
db.collectionName.aggregate([
{
$match: {
field: param
}
}
])
正在工作(给出预期的聚合结果)。
这怎么可能?
最佳答案
嗯,区别当然是 .aggregate()
方法返回 "cursor" ,其中您提供给 runCommand()
的选项你不是。这实际上是旧形式,它将响应作为单个 BSON 文档返回,其中包含所有 it's limitations。 .另一方面,游标没有限制。
当然你可以使用 runCommand()
使用 shell “制作你自己的光标”的方法,因为毕竟这正是 .aggregate()
的内容方法是在“幕后”进行。这同样适用于所有驱动程序,它们基本上为所有内容调用数据库命令。
使用 shell,您可以像这样转换您的请求:
var cmdRes = db.runReadCommand({
"aggregate": "collectionName",
"allowDiskUse": true,
"pipeline":[
{
"$match":{
"field":param
}
}
],
"cursor": { "batchSize": 25 }
});
var cursor = new DBCommandCursor(db, cmdRes);
cursor.next(); // will actually iterate the cursor
如果您真的想深入研究它,请输入不带括号 ()
的 db.collectionName.aggregate
,以便您实际打印函数定义。这将向您展示一些其他的函数调用,您可以进一步深入研究它们,并最终看到上面显示的行的有效内容,以及许多其他内容。
但是您运行它的方式是“单个 BSON 文档”响应。按照此处显示的方式运行它,您会得到相同的“光标”响应。
关于mongodb - runCommand 与聚合方法进行聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50153872/
要运行聚合查询,可以使用以下任一方法: db.collectionName.aggregate(query1); 或 db.runCommand(query2) 但是今天早上我注意到了一些奇怪的事情。
我正在做一个峰值来测试 msdeploy 以运行远程命令作为我们自定义安装程序过程的一部分,但无论我如何配置它,我都无法让它允许我对普通用户使用 runCommand。 我正在使用的调用是(为清楚起见
我正在尝试通过 MSDeploy 运行命令作为我的打包/部署过程的一部分。特别是,我试图通过运行 创建自定义事件日志。安装工具 针对我的一个 DLL,但我无法指定 相对路径从部署目录到 DLL。首先,
运行这行代码后 db.runCommand({convertToCapped: "mail_logs", size: 29250000 }) 在 Mongo Shell 中,我收到此错误: Err
我试图弄清楚当您想要提供参数时 runCommands 资源如何工作。 根据文档,您可以提供参数和 protectedParameters 属性,但没有有关如何使用它们的文档。 每次我进行部署时,脚本
我正在尝试使用 MsDeploy runCommand 提供程序在自动部署期间卸载并重新安装 Windows 服务。 到目前为止,我在遵循 this question 中的建议时取得了一定的成功。和
我试图使用 Nuetralinojs 在 Windows 上获取网络信息。如何让我的应用程序跨平台?当用户在 Linux 上执行此命令时,我想运行 ifconfig 命令。 我已经在下面发布了我的 H
我需要知道在哪里可以找到 MongoDB runCommand 的引用资源。 即有哪些命令可用,每个命令可以使用哪些可选参数。 例如, db.runCommand({addshard: "10.0.4
如何使用MongoDB的runCommand方法? 我正在使用 db.col.runCommand("text",{search:"searchword"}) 从 MongoDB 控制台进行全文搜索。
作为一个简单的练习,我尝试使用以下小程序更改 Win7 命令提示符窗口中的提示: module Main where import System.Environment import System
我正在使用 Node.js 和 Mongoose 来访问我的 MongoDB。我正在使用一个存储一些地理坐标的模型。我将它们编入索引,一切似乎都按预期工作。我想做的是从我的请求中检索最接近的东西。在
我有这两个 mongo 命令,在我看来应该会导致相同的结果: for(var i=0;i<1000;i++){db.test.insert({a:1}); db.getLastError({j:1,
这个问题在这里已经有了答案: SSH.NET is not executing command on device (1 个回答) 去年关闭。 我想创建一个应用程序来将 SSH 命令发送到 HP 交换
在你发火之前,我知道如何在使用 find 命令时从常规 mongodb 查询中获取限制、跳过或获取计数。 但是当使用 geoSpatial runCommand 时,它会在 mongodb 中返回 d
我在 MongoDB 中有文本索引,想使用 text在我的收藏中搜索的命令。在 Mongoid 中找不到此功能。 最佳答案 我试图找到解决方案,因为我也是一个 mongoid 用户。除了 where
您好,我正在使用 C# 和 MongoDB 官方驱动程序 v2.2.4,我想在管理数据库上运行 db.runCommand()。 到目前为止我已经有了这个并且我能够连接到管理数据库但是 db.runC
我正在使用 awsdeploy 部署一个弹性 beantalk ASP.NET MVC 应用程序。该应用程序需要只能通过运行 .msi 安装程序 (CRRuntime_64bit_13_0_6.msi
我用 DoCmd.RunCommand acCmdSaveRecord 保存但我不确定这实际上是如何工作的。它会保存所有未保存的更改吗?还是无论是否更改,它都会保存所有内容?还是只保存当前表单?其他形
我用 DoCmd.RunCommand acCmdSaveRecord 保存但我不确定这实际上是如何工作的。它会保存所有未保存的更改吗?还是无论是否更改,它都会保存所有内容?还是只保存当前表单?其他形
我正在尝试将在旧 csproj 格式下构建的 WPF 应用程序迁移到为 VS2017 定义的新 csproj 格式。 我已经能够让应用程序编译,但是当我尝试在 VS2017 下的调试器中启动它时,我收
我是一名优秀的程序员,十分优秀!