如何更新树猫鼬

时间:2020-05-19 17:17:44

标签: javascript node.js mongodb mongoose tree

我正在使用猫鼬mongoose-data-tree插件来制作 nodejs 应用程序。我想知道如果我们移动父母,是否可以更新孩子的路径。

以下是使用mongoose-data-tree文档的示例:

var tree = require('mongoose-data-tree');

var UserSchema = new Schema({
  name : String
});
UserSchema.plugin(tree);
var User = mongoose.model('User', UserSchema);
 
var adam = new User({ name : 'Adam' });
var alice = new User({ name: 'Alice'});
var bob = new User({ name : 'Bob' });
var carol = new User({ name : 'Carol' });
 

bob.parent = adam;
alice.parent = adam;
carol.parent = bob;
 
adam.save(function() {
    alice.save(function() {
         bob.save(function() {
             carol.save();
        });
    });
});

所以我有

            Adam
            |  |
          Bob  Alice
            |
          Carol 

现在我要

            Adam
             |
            Alice
             |
            Bob
             |
            Carol

我已经设法更新了父级,但是之后我不知道如何修改子级路径。

User.findOne({name: 'Alice'}).then(alice => {
    User.findOne({name: 'Bob'}).then(bob => {
        bob.update({
            parent: alice._id,
            path: alice.path + "#" + bob._id
        });
});

请注意,Carol可能也有孩子等等

0 个答案:

没有答案
相关问题