Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MongoError:筛选器参数必须是对象_Javascript_Mongodb_Express_Mongoose - Fatal编程技术网

Javascript MongoError:筛选器参数必须是对象

Javascript MongoError:筛选器参数必须是对象,javascript,mongodb,express,mongoose,Javascript,Mongodb,Express,Mongoose,我正在为Post/Movies创建一个rest api,我为Post/Movies创建了一个端点:请求主体应该只包含电影标题,并且应该根据传递的标题验证其存在性,其他电影细节应该从MovieDB中获取,并保存到应用程序数据库中 app.post('/movies', (req, res) => { request('https://api.themoviedb.org/3/discover/movie?callback=JSONP_CALLBACK&sort_by=

我正在为Post/Movies创建一个rest api,我为Post/Movies创建了一个端点:请求主体应该只包含电影标题,并且应该根据传递的标题验证其存在性,其他电影细节应该从MovieDB中获取,并保存到应用程序数据库中

app.post('/movies', (req, res) => {
        request('https://api.themoviedb.org/3/discover/movie?callback=JSONP_CALLBACK&sort_by=popularity.desc&api_key=2931998c3a80d7806199320f76d65298', function (error, response, body) {
            console.log('error:', error); // Print the error if one occurred and handle it
            console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received

          });
        db.collection('movies').findOneAndUpdate(req.body.title,{
            title: 'Avengers',
        },(err, result) => {
            if (err) {
                res.send({
                    'error': 'An error has occured'
                });
            } else {
                res.send(result.ops[0]);
            }
        });
});

当我运行应用程序时,我发现了这个错误,我在这里做错了什么,?我对nodejs和所有这些东西都是新手,只是学习在filter对象中使用
$eq
操作符

试试下面的方法

db.collection('movies').findOneAndUpdate({title:req.body.title},{
          $set:{
           'Avengers'
          }})

req.body.title
不是“对象”。实际上,它看起来像是一个打字错误,因为接下来你要说的是
{title:'Avengers'}
。或者可能
{title:req.body.title}
。简而言之,您似乎忘记删除测试,并在错误的位置添加了变量。当我运行localhost:8000/movies时,我在控制台类型中出现错误错误错误:无法读取未定义的属性“0”,在post man中,无法获得任何响应。请尝试
console.log(结果)
查看JSON的结构这是我得到的:
我们生活在8000{lastErrorObject:{UpdateExisting:false,n:0},value:null,ok:1}错误:null statusCode:200
意外标记,}?可能我没有正确关闭它,请检查关闭状态{在您的代码中,set方法有问题,请再次检查,如果这是正确的方法,请关闭括号。答案有帮助吗?
app.post('/movies', (req, res) => {

    /* code ... */

    let { title } = req.body

    db.collection('movies').findOneAndUpdate({ title: { $eq: title } }, { title: 'Avengers' }, (err, result) => {
        if (err) {
            res.send({ 'error': 'An error has occured' });
        } else {
            res.send(result.ops[0]);
        }
    });

});
db.collection('movies').findOneAndUpdate({title:req.body.title},{
          $set:{
           'Avengers'
          }})