Имею модель:
const mongoose = require('mongoose');
let categorySchema = mongoose.Schema({
price: Number,
square: Number,
prestige: Number,
ecoSituation: String,
transport: Array,
typeOfHouse: String,
numberOfRooms: Number,
updated: Date,
upgraded: Date
});
let apartment = mongoose.model('apartments', categorySchema);
module.exports = apartment;
Моя цель: создавать новое поле в данной схеме. Имя и дефолтное значение я получаю через post запрос.
Что я пытался сделать:
код модуляconst apartment = require('../models/apartment');
class AddNewCategory {
constructor() {}
newCategory(req, callback) {
let catName = req.body.name;
let default_ = req.body.default;
apartment.where()
.setOptions({ multi: true })
.update({ $set: { 'ar': 'asd' }}, (err, result) => {
if(err) {
console.error("err => " + err);
} else {
console.log(result);
callback();
}
});
apartment.findOne({}, (err, apart) => {
apartment.update(apart, {$set: {arrr: 'asd'}}, (err, result) => {
if(err) {
console.error("err => " + err);
} else {
console.log(result);
callback();
}
})
});
apartment.update({}, {$set: {catName: default_}}, {multi:true}, (err, result) => {
if(err) {
console.error("err => " + err);
} else {
console.log(result);
callback();
}
}).exec();
}
}
module.exports = AddNewCategory;
Перебрал все способы, которые удалось загуглить. Ни один способ не подошел. На все выходной результат:
{ ok: 0, n: 0, nModified: 0 }
Пробовал в условии поиска записей вместо {} задавать и _id одной из записей, так и одно из полей, которое гарантированно есть в базе. На всё возвращается, что не было найдено ни одной записи, а значит ничего не было обновлено.
p.s. Если через консоль прописать
db.apartments.update({}, {$set: {asd: "Tom"}}, {multi:true})
, то запись успешно обновляется
WriteResult({ "nMatched" : 4, "nUpserted" : 0, "nModified" : 4 })
p.s.
одна из записей{
"_id" : ObjectId("5c4c4a62d1160f1eeece7aa8"),
"transport" : [
"24",
"35"
],
"price" : 12,
"square" : 23,
"ecoSituation" : "5",
"typeOfHouse" : "house",
"numberOfRooms" : 12,
"updated" : ISODate("2019-01-26T11:54:10.927Z"),
"upgraded" : ISODate("2019-01-26T11:54:10.927Z"),
"__v" : 0,
"asd" : "Tom"
}
{
"_id" : ObjectId("5c4c4b3cd1160f1eeece7aa9"),
"transport" : [
"24"
],
p.s.s. наличие .exec() не давало никакого результата. Как с наличием колбека, так и без, exec() тоже не давал ничего.
p.s.s.s. чувствую, что ответ где-то на поверхности, но не могу уловить, где именно.