专家们.
我是MongoDB的新手,但我知道自己遇到了麻烦......例如:
db.test.aggregate(
[
{$group: {_id: {email: "$email", gender: "$gender"}, cnt: {$sum: 1}}},
{$group: {_id: "$_id.email", cnt: {$sum: 1}}},
{$match: {cnt: 2}}
],
{allowDiskUse : true}
)
Run Code Online (Sandbox Code Playgroud)
无论我尝试什么变化,我都会遇到同样的错误("Pass allowDiskUse:true to opt in"):
错误("打印堆栈跟踪")@:0()@src/mongo/shell/utils.js:37([对象数组],[对象对象])@src/mongo/shell/collection.js:866 @(壳):7
未捕获的异常:聚合失败:{"errmsg":"异常:来自mongo1.mscnet.com:27017的响应中收到错误:{$ err:\"超出$ group的内存限制,但不允许外部排序.传递allowDiskUse:true以选择加入. \",代码:16945}","code":16945,"ok":0}
仅供参考:我使用的是Mongo 2.6
我开始与Mongo客户端做一些漂亮的查询和凝聚..但现在我想在.NET/C#中使用它,我看到我不能简单地将查询作为文本字段运行..
此外,在求助于构建聚合管道并运行collection.Aggregate()函数之后,我得到了一个结果集,但我不知道如何遍历它.
有人可以帮我指点吗?
这是我的代码:
var coll = db.GetCollection("animals");
var match = new BsonDocument {
{ "$match", new BsonDocument {{"category","cats"}} }
};
var group = new BsonDocument{
{
"$group", new BsonDocument{
{"_id", "$species"},
{"AvgWeight", new BsonDocument{{"$avg", "$weight"}}} }
}
};
var sort = new BsonDocument{{"$sort", new BsonDocument{{"AvgWeight", -1}}}};
var pipeline = new[] { match, group, sort };
var args = new AggregateArgs { Pipeline = pipeline };
var res = coll.Aggregate(args);
foreach (var obj in res)
{
// WHAT TO DO …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Azure VM设置我的MongoDB开发环境.VM启动并运行MongoDB 2.6.6,我可以通过SSH连接到VM并运行MongoDB.
但是,我无法从任何外部客户端(即cmd shell mongo客户端或robomongo)连接到Mongo.我正在使用提供给我的公共IP,并使用默认端口.我还尝试编辑/etc/mongodb.conf以指定端口号(端口= 27017),并重新启动了服务..但这似乎没有任何区别.
我尝试使用管道运算符 (|>) 将值从一个函数传递到另一个函数,但第一个函数的结果返回我的输出和“:ok”,然后影响后续 |> 输入的输入。
例子:
defmodule TestPipe do
def parse(msg), do: IO.puts "Parsed: #{msg}"
end
iex> "this is my message" |> Test.parse |> Test.parse
iex> Parsed: this is my message
iex> Parsed: ok
iex> :ok
Run Code Online (Sandbox Code Playgroud)