sql >> データベース >  >> NoSQL >> MongoDB

$graphLookupを使用してMongoDBのネストされたデータ構造をトラバースする

    これに対する答えをまだ探しているかどうかはわかりませんが、マングースを使用している場合は、機能にデータを入力し、ミドルウェアとして使用する

    次に例を示します。たとえば、人とその友達、およびその友達-友達などのリストが必要だとします。結果は次のようになります。

    [
        {
            _id: "abc123",
            name: "John Doe",
            friends: [
                {
                    _id: "efg456",
                    name: "Foo bar",
                    friends: [
                        {
                            _id: "hij789",
                            name: "Jane Doe",
                            friends: [more friends...]
                        }
                    ]
                }
            ]
    ]
    

    データベースには次のように保存されます

    {_id: "abc123", name: "John Doe", friends: ["efg456"]}
    {_id: "efg456", name: "Foo bar", friends: ["hij789"]}
    {_id: "hij789", name: "Jane Doe", friends: [more friends...]}
    

    スキーマとミドルウェアは次のようになります:

    const Person = new Schema<Folder>({
        name: {type: String, required: true},
        friends: [{type: Schema.Types.ObjectId, ref: "person"}],
    }, {timestamps: true})
    
    Person.pre("find", function(next) {
        this.populate("friends")
        next()
    })
    

    findにミドルウェアとして機能を追加する 見つかったすべての人に対して実行されます。これには、friendsの子供も含まれます 配列。




    1. Mongo:ホストでコマンド「whatsmyuri」を実行しようとしたときにネットワークエラーが発生しました

    2. MongoDB WiredTigerエンジンを事前に集計されたレポートに使用できますか? (MMAPv1と同様)

    3. Laravelでジョブをキャンセルする

    4. Pymongoの結果から_id要素を削除する