Агрегированный конвейер возвращает неверный результат по сравнению с CLI

Я не совсем уверен, что правильно понимаю ваш вопрос, но если вы хотите изменить уровни факторов cyl на mutate(), вы могли бы сделать:

df <- mtcars %>% mutate(cyl = factor(cyl, levels = c(4, 6, 8)))

Вы получили бы:

#> str(df$cyl)
# Factor w/ 3 levels "4","6","8": 2 2 1 2 3 2 3 1 1 2 ...
1
задан Seaskyways 4 March 2019 в 09:42
поделиться

1 ответ

Сначала используйте bson.D {} вместо bson.M {} . Это связано с тем, что bson.D{} следует использовать в ситуациях, где важен порядок, таких как команды MongoDB.

Вы также можете инкапсулировать весь конвейер в mongo.Pipeline . Например:

pipeline := mongo.Pipeline{
    {{"$match", bson.D{{"createdata", 10}}}},
    {{"$group", bson.D{
        {"_id",        bson.D{{"type", "$type"}}}, 
        {"TotalFeeds", bson.D{{"$sum", 1}}},
    }}},
    {{"$project", bson.D{
        {"type", "

Сначала используйте bson.D {} вместо bson.M {} . Это связано с тем, что bson.D{} следует использовать в ситуациях, где важен порядок, таких как команды MongoDB.

Вы также можете инкапсулировать весь конвейер в mongo.Pipeline . Например:

[110]

Проверьте ваше Feeds{} отображение структуры. Убедитесь, что либо вы указали отображение bson, то есть:

type Feeds struct {
    Type string `bson:"type"`
    TotalFeeds int `bson:"TotalFeeds"`
}

, либо на этапе проецирования $project вы используете согласованный корпус для полей. Например, укажите все строчные буквы type и totalfeeds или все прописные буквы Type и TotalFeeds.

pipeline := mongo.Pipeline{
    {{"$match", bson.D{{"createdata", 10}}}},
    {{"$group", bson.D{
        {"_id",        bson.D{{"type", "$type"}}}, 
        {"totalfeeds", bson.D{{"$sum", 1}}},
    }}},
    {{"$project", bson.D{
        {"type", "

Сначала используйте bson.D {} вместо bson.M {} . Это связано с тем, что bson.D{} следует использовать в ситуациях, где важен порядок, таких как команды MongoDB.

Вы также можете инкапсулировать весь конвейер в mongo.Pipeline . Например:

[110]

Проверьте ваше Feeds{} отображение структуры. Убедитесь, что либо вы указали отображение bson, то есть:

[111]

, либо на этапе проецирования $project вы используете согласованный корпус для полей. Например, укажите все строчные буквы type и totalfeeds или все прописные буквы Type и TotalFeeds.

[112]

Тогда вам не нужно указывать отображение bson в структуре:

type MyStruct struct {
    Type string 
    Total int
}

Так что либо используйте непротиворечивые случаи имен полей в вашей структуре, либо явно предоставьте bson картирование.

id.type"}, {"totalfeeds", "$totalfeeds"}, {"_id", 0}}, }}, }

Тогда вам не нужно указывать отображение bson в структуре:

type MyStruct struct {
    Type string 
    Total int
}

Так что либо используйте непротиворечивые случаи имен полей в вашей структуре, либо явно предоставьте bson картирование.

id.type"}, {"TotalFeeds", "$TotalFeeds"}, {"_id", 0}}, }}, }

Проверьте ваше Feeds{} отображение структуры. Убедитесь, что либо вы указали отображение bson, то есть:

type Feeds struct {
    Type string `bson:"type"`
    TotalFeeds int `bson:"TotalFeeds"`
}

, либо на этапе проецирования $project вы используете согласованный корпус для полей. Например, укажите все строчные буквы type и totalfeeds или все прописные буквы Type и TotalFeeds.

pipeline := mongo.Pipeline{
    {{"$match", bson.D{{"createdata", 10}}}},
    {{"$group", bson.D{
        {"_id",        bson.D{{"type", "$type"}}}, 
        {"totalfeeds", bson.D{{"$sum", 1}}},
    }}},
    {{"$project", bson.D{
        {"type", "

Сначала используйте bson.D {} вместо bson.M {} . Это связано с тем, что bson.D{} следует использовать в ситуациях, где важен порядок, таких как команды MongoDB.

Вы также можете инкапсулировать весь конвейер в mongo.Pipeline . Например:

[110]

Проверьте ваше Feeds{} отображение структуры. Убедитесь, что либо вы указали отображение bson, то есть:

[111]

, либо на этапе проецирования $project вы используете согласованный корпус для полей. Например, укажите все строчные буквы type и totalfeeds или все прописные буквы Type и TotalFeeds.

[112]

Тогда вам не нужно указывать отображение bson в структуре:

type MyStruct struct {
    Type string 
    Total int
}

Так что либо используйте непротиворечивые случаи имен полей в вашей структуре, либо явно предоставьте bson картирование.

id.type"}, {"totalfeeds", "$totalfeeds"}, {"_id", 0}}, }}, }

Тогда вам не нужно указывать отображение bson в структуре:

type MyStruct struct {
    Type string 
    Total int
}

Так что либо используйте непротиворечивые случаи имен полей в вашей структуре, либо явно предоставьте bson картирование.

0
ответ дан Wan Bachtiar 4 March 2019 в 09:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: