小编Fal*_*Ger的帖子

查找数组中的最大元素

REF:来自具有字段值 max 的数组的 MongoDB 文档

查找文档中的子数组中的最高值MongoDB查找文档数组中的最大值中的答案建议使用排序+限制(1),但这确实很慢。当然有一种方法可以使用 $max 运算符。

假设在聚合匹配中获得这样的文档:

{
  _id: "notImportant",
  array: [
    {
      name: "Peter",
      age: 17
    },
    {
      name: "Carl",
      age: 21
    },
    {
      name: "Ben",
      age: 15
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

您想要找到年龄最高的(整个,而不仅仅是一个值)文档。如何使用 $max 运算符做到这一点?

我试过

unwind {"$array"}
project {"_id": 0, "name": "$array.name", "age": "$array.age"}
Run Code Online (Sandbox Code Playgroud)

所以我得到

{
  _id: null,
  name: "Peter",
  age: 17
}
{
  _id: null,
  name: "Carl",
  age: 21
}
{
  _id: null,
  name: "Ben",
  age: 15
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试匹配年龄:

age: {$eq: {$max: …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

12
推荐指数
3
解决办法
1万
查看次数

在 Google Colab 上安装 Spark 时出错

在 Google Colab 上安装 Spark 时出现错误。它说

tar:spark-2.2.1-bin-hadoop2.7.tgz:无法打开:没有这样的文件或目录 tar:错误不可恢复:现在退出。

这些是我的步骤

在此处输入图片说明

hadoop apache-spark pyspark google-colaboratory

5
推荐指数
3
解决办法
7781
查看次数

wxTimer 在使用 Bind() 绑定后不调用回调

我想在我的应用程序中使用 wxTimer,但我不想使用预处理器宏来绑定事件。相反,我想在 CTOR 调用期间使用Bind()将事件绑定到我的 ui 元素。
绑定我的计时器后,它不会启动或不会调用事件处理程序。根据这个,它应该像我想要的那样工作。我也不想用Connect()。以同样的方式绑定按钮效果很好。这是一个最小的例子:

最小示例:

#include <wx/wx.h>
#include <iostream>

class MainFrame : public wxFrame
{
private:
    const int DELTA_TIME = 100; // time between timer events (in ms)
private:
    wxTimer* timer = nullptr;
    void OnTimer(wxTimerEvent& evt);
    void OnButtonClick(wxCommandEvent& evt);
public:
    MainFrame();
    virtual ~MainFrame();
};

void MainFrame::OnTimer(wxTimerEvent& evt)
{
    std::cout << "Timer Event!" << std::endl; // never happens
}

void MainFrame::OnButtonClick(wxCommandEvent& evt)
{
    std::cout << "Button Event!" << std::endl; // works just …
Run Code Online (Sandbox Code Playgroud)

c++ wxwidgets callback

3
推荐指数
1
解决办法
518
查看次数

c++20 对被声明为 const 的函数的概念检查

我想测试 c++20 中的新概念功能,我想知道是否可以创建一个概念来检查声明为 const 的函数是否存在。
如果函数以正确的类型存在但不是 const,我希望检查失败。我在这里找不到任何相关内容:https : //en.cppreference.com/w/cpp/concepts

我有这个

template <typename T>
concept hasToString = requires (T val) {
    { val.toString() } /* const here gives error */ -> std::same_as<std::string>;
};

void f(hasToString auto bar)
{
    std::cout << bar.toString();
}
Run Code Online (Sandbox Code Playgroud)

c++ constraints c++-concepts c++20

2
推荐指数
1
解决办法
79
查看次数

如何从 std::chunk_by 返回值获取各个块?

我有以下 c++23 代码,它使用gcc-13.2.

#include <iostream>
#include <ranges>
#include <vector>

auto main() -> int
{
    using std::cout;
    std::vector<int> v{1,2,2,2,1,1,1,2,1};
    auto chunks = v | std::views::chunk_by(std::equal_to{});
    for (auto chunk : chunks)
    {
        cout << "[";
        for (const auto& value : chunk)
        {
            cout << value << ", ";
        }
        cout << "]\n";
    }
    cout << std::flush;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

打印

[1, ]
[2, 2, 2, ]
[1, 1, 1, ]
[2, ]
[1, ]
Run Code Online (Sandbox Code Playgroud)

正如预期的那样。

但我只想获取该列表 ( [2, 2, 2, …

c++ std-ranges c++23

2
推荐指数
1
解决办法
93
查看次数

MongoDB C# 聚合计数

我希望使用 C# 驱动程序 (V 2.7.0) 聚合集合,然后计算结果。

假设我有一个 IMongoCollection col,我会像这样进行聚合:

IAsyncCursor<BsonDocument> cursor = col.Aggregate()
    .Match(someFilterDefinition)
    .Project(someProjectionDefinition)
    .Unwind("someFieldName")
    .ToCursor();
while (cursor.MoveNext())
{
    foreach (BsonDocument doc in cursor.Current)
    {
        doStuff(doc);
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望获得聚合返回的文档数。在 shell 中你会做这样的事情

db.getCollection("someCollectionName").aggregate(
    [
        { 
            "$match" : {
                // some match filter
            }
        }, 
        { 
            "$project" : {
                "someField" : 1
            }
        }, 
        { 
            "$unwind" : "$someField"
        }, 
        { 
            "$count" : "count"
        }
    ], 
    { 
        "allowDiskUse" : false
    }
);
Run Code Online (Sandbox Code Playgroud)

并且您将获得一个带有单个“计数”字段的文档(或没有文档),它的 int64 值是它之前阶段的元素数量。

有一个IAggregateFluent.Count()函数。但是它返回一个 IAggregateFluent 我想要一个 AggregateCountResult 或只是一个简单的 …

c# mongodb

1
推荐指数
1
解决办法
3039
查看次数