или же
аюсь сделать довольно простую операцию, вытянуть элемент из массива с помощью Mongoose в базе данных Mongo следующим образом:
User.update({ _id: fromUserId }, { $pull: { linkedUsers: [idToDelete] } });
fromUserId
& idToDelete
оба Идентификаторы объектов.
Схема для пользователей выглядит следующим образом:
var UserSchema = new Schema({
groups: [],
linkedUsers: [],
name: { type: String, required: true, index: { unique: true } }
});
linkedUsers
массив, который получает только идентификаторы других пользователей
Я пробовал это также:
User.findOne({ _id: fromUserId }, function(err, user) {
user.linkedUsers.pull(idToDelete);
user.save();
});
Но без удачи.
Второй вариант, кажется, почти работает, когда я утешаю длины массива в разных позициях, но после вызоваsave
и проверка, длина все еще в 36:
User.findOne({ _id: fromUserId }, function(err, user) {
console.log(user.linkedUsers.length); // returns 36
user.linkedUsers.pull(idToDelete);
console.log(user.linkedUsers.length); // returns 35
user.save();
});
Похоже, я близко, но все же не повезло. Оба идентификатора отправляются через интерфейс приложения. Я использую эти версии:
"mongodb": "^2.2.29",
"mongoose": "^5.0.7",
Заранее спасибо.