Mongoose push в массив массива [duplicate]

Этот код TypeScript

class A {
    private a1;
    public a2;
}

компилируется в этот код JavaScript

class A {
}

Это связано с тем, что свойства в JavaScript начинаются только после того, как они имеют некоторое значение. Вы должны назначить свойства некоторым значениям.

class A {
    private a1 = "";
    public a2 = "";
}

он компилируется в

class A {
    constructor() {
        this.a1 = "";
        this.a2 = "";
    }
}

Тем не менее вы не можете получить свойства из простого класса (вы можете получить только методы из прототипа ). Вы должны создать экземпляр. Затем вы получите свойства, вызвав Object.getOwnPropertyNames().

let a = new A();
let array = return Object.getOwnPropertyNames(a);

array[0] === "a1";
array[1] === "a2";

Применяется к вашему примеру

class Describer {
    static describe(instance): Array<string> {
        return Object.getOwnPropertyNames(instance);
    }
}

let a = new A();
let x = Describer.describe(a);
28
задан mostafiz rahman 15 December 2016 в 07:42
поделиться

2 ответа

Возможно, что-то вроде этого, где ID - ваш ObjectId. Первый {} необходим для идентификации вашего документа. Не требуется использовать ObjectId, если у вас есть еще один уникальный идентификатор в вашей коллекции.

db.collection.update(
    { "_id": ID, "playlists._id": "58"},
    { "$push": 
        {"playlists.$.musics": 
            {
                "name": "test name",
                "duration": "4.00"
            }
        }
    }
)
49
ответ дан Neil Lunn 19 August 2018 в 09:50
поделиться
  • 1
    Здравствуй. Вы не указываете плейлист _id. У меня есть несколько плейлистов, каждый пользователь – balkondemiri 10 January 2015 в 12:41
  • 2
    Хм, пропустил это. Я обновил свой ответ. – Thomas Bormans 10 January 2015 в 12:50
  • 3
    Я сейчас пытаюсь. Этот код не работает :( – balkondemiri 10 January 2015 в 18:58
  • 4
    @balkondemiri Это возможно. Я не могу проверить это, так что это было предположение. Тем не менее он должен поставить вас в правильном направлении. – Thomas Bormans 10 January 2015 в 19:36
  • 5
    Всем спасибо. Я обновляю свой запрос. {& quot; _id ": ObjectId (" 54ad6c115e03635c0c000029 ")," плейлисты ._id ": 58} – balkondemiri 11 January 2015 в 07:19
0
ответ дан adflytec 30 October 2018 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: