Я пытаюсь нажать значение для коллекции коллекции mongodb arrayList (user.completed), но он не обновляется, хотя мой код кажется правильным.Нажатие элемента на массив коллекции Mongodb
Когда я вызываю вызов API, значения передаются, однако «$ push» не добавляет значение к заполненному массиву !! Что мне здесь не хватает?
Когда я пытаюсь нажать на значение для строки, я получаю ошибку мангуста, как и ожидалось. Но когда я пытаюсь передать значение неопределенному ключу («abc»), новый массив не создается, как это предлагает документация mongodb! Не уверен, что здесь происходит!
// MongoDB данных
{
"_id" : ObjectId("58aa2eb1de7b414237b93981"),
"email" : "[email protected]",
"firstName" : "test",
"completed" : [],
"playing" : [],
"__v" : 2
// API
import mongoose from 'mongoose'
import { Router } from 'express'
import User from './../model/user'
api.put('/completed/:id', (req, res) => {
User.update(
{ "_id": req.params.id },
{ "$push": {
"completed": req.body.completed
}}
)
.then(doc => res.send(doc), err => res.status(400).send(err))
})
// Запрос
var request = require("request");
var options = {
method: 'PUT',
url: 'http://localhost:8008/v1/user/completed/58aa2eb1de7b414237b93981',
headers: {
'content-type': 'application/json' },
body: { completed: { game: 'A', player: 'B' } },
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
Не можете добавить комментарий, который вы видите на схеме? –
Вы уверены, что это работает сейчас? req.params.id - это строка, и вам нужно запросить ObjectId. –
обновил и ответил на мой собственный вопрос ... спасибо, что посмотрели его ребята – rex