MongoDB graphLookup с использованием AggregateFluentExtensions - PullRequest
0 голосов
/ 05 октября 2018

Я пытался запустить MongoDB graphLookup, используя последний драйвер C #, который использует AggregateFluentExtensions .Согласно документации : метод получает серию параметров, которые я не могу найти способ заставить работать.

Кто-нибудь использовал это и мог бы помочь мне с примером?

Это json-версия моей агрегации:

db.getCollection("Item").aggregate(
    [
        { 
            "$project" : {
                "itemMasterId" : 1.0, 
                "parentItemId" : 1.0
            }
        }, 
        { 
            "$graphLookup" : {
                "from" : "Item", 
                "startWith" : "$itemMasterId", 
                "connectFromField" : "itemMasterId", 
                "connectToField" : "parentItemId", 
                "as" : "ancestors", 
                "maxDepth" : 10, 
                "depthField" : "depthField", 
                "restrictSearchWithMatch" : {
                    "locationId" : 26
                }
            }
        }, 
        { 
            "$project" : {
                "itemMasterId" : 1.0, 
                "parentItemId" : 1.0, 
                "children.itemMasterId" : 1, 
                "children.parentItemId" : 1
            }
        }
    ]
);

Спасибо!

1 Ответ

0 голосов
/ 22 марта 2019

(Поздно на вечеринке, я надеюсь, что это кому-нибудь поможет.)

Я использовал метод AppendStage (), вы можете попробовать это:

var graphLookupStage = new BsonDocument("$graphLookup",
                        new BsonDocument
                            {
                                    { "from", "someCollection" },
                                    { "startWith", "$reportsTo" },
                                    { "connectFromField", "reportsTo"},
                                    { "connectToField",  "name" },
                                    { "as", "reportingHierarchy" },
                                    { "maxDepth", 1 },
                                    { "depthField", "depthField" } //optional
                        });
var result = collection.Aggregate().AppendStage<BsonDocument>(graphLookupStage);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...