Angular7 - .NET Core v2 создает http 415 (неподдерживаемый тип носителя)

Начиная с MongoDB 2.4 вы можете использовать $ setOnInsert ( http://docs.mongodb.org/manual/reference/operator/setOnInsert/ )

Установить 'insertion_date 'используя $ setOnInsert и' last_update_date ', используя $ set в вашей команде upsert.

Чтобы превратить ваш псевдокод в рабочий пример:

now = datetime.utcnow()
for document in update:
    collection.update_one(
        {"_id": document["_id"]},
        {
            "$setOnInsert": {"insertion_date": now},
            "$set": {"last_update_date": now},
        },
        upsert=True,
    )

2
задан marc_s 2 March 2019 в 10:22
поделиться

1 ответ

Простой string это уже действительный JSON. Поскольку вы используете объект String, вы можете просто установить тело в качестве фактического строкового значения:

let body = words.toString(); // or simply : let body = words; it should work as well IMHO

В качестве примечания, я бы рекомендовал использовать просто string в качестве типа для [ 114] вместо String.

Предполагается, что этот последний вариант является обёрткой вокруг string (однако в C #, однако, string является псевдонимом для String, и поэтому они эквивалентны, хотя все же рекомендуется использовать и псевдоним в нижнем регистре). ).

Что случилось ?

Без просмотра реальных данных это могут быть только предположения. Я не могу сказать, является ли это корнем проблемы, но выполнение JSON.stringify над строкой приведет к тому, что вы отправите строку с двойными двойными кавычками в качестве тела вашего HTTP POST, и, возможно, именно поэтому ваш бэкэнд C # не является доволен этим.

0
ответ дан Pac0 2 March 2019 в 10:22
поделиться
Другие вопросы по тегам:

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