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

MongoDBでネストされたドキュメントを再帰的にトラバースする方法

    これを行う最も簡単な方法は、bluebird promise、具体的にはeachを使用することです。 、propsreduce およびmap ユースケースに応じた方法。

    あなたの場合、私は

    の線に沿って何かを提案したいと思います
    var bluebird = require('bluebird');
    var mongoose = require('mongoose');
    var UserModel = mongoose.model('User');
    
    function getUser(userId) {
      return UserModel.findOne({_id: userId}).lean().exec()
        .then(function(user){
          return bluebird.props({
            firstName: user.firstName,
            parents: bluebird.map(user.parents, getUser),
            children: bluebird.map(user.children, getUser),
            partner: bluebird.map(user.partner, getUser),
            sibling: bluebird.map(user.sibling, getUser)
          })
        });
    }
    
    // Then call getUser once on the root node, e.g.
    getUser(rootUserObjectId)
      .then(function(userTree){
        console.log(userTree)
      })
    

    どうなるか教えてください!




    1. BSON::ObjectIdとMongo::ObjectID

    2. シンプルなPHPmongoDBユーザー名とパスワードサイトのチェック

    3. 小さな.NETアプリケーションに適したデータベースは何ですか?

    4. StackExchange.Redisを使用したRedisへのSSL接続