我正在使用猫鼬和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可能也有孩子等等