Синтаксис поиска в mongodb -
db.<collection name>.find(query, projection);
и второй запрошенный вами запрос, то есть
db.test.find(
{shapes: {"$elemMatch": {color: "red"}}},
{"shapes.color":1})
, в этом вы использовали $elemMatch
оператор в части запроса, тогда как если вы используете этот оператор в проекционной части, вы получите желаемый результат. Вы можете записать свой запрос как
db.users.find(
{"shapes.color":"red"},
{_id:0, shapes: {$elemMatch : {color: "red"}}})
. Это даст вам желаемый результат.
В целях безопасности токен CSRF изменяется («вращается») при входе в систему. Если вы открываете страницу в Tab A, войдите в систему на вкладке B, затем попытайтесь отправить форму в Tab A, вы будете получить CSRF-ошибку, поскольку токен CSRF в Tab A устарел.
Когда вы обновляете Tab A, загружается новый токен CSRF, и ошибки будут остановлены.