社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  MongoDB

如何实现mongodb数据库中不需要知道记录id的更新请求

Lakshan Waruna • 5 年前 • 495 次点击  

我想用记录的名称而不是id向rest api发送请求。

这是用户填写的用于更新可用票证数量的表单。

<div>
                    <form onSubmit={this.handleSubmit}>
                        <label className="label">Enter the train</label>
                        <input type="text" ref="name" placeholder="name" className="inputBox"/>

                        <label className="label">Enter the no of tickets</label>
                        <input type="text" ref="tickets" placeholder="no of tickets" className="inputBox"/>

                        <input type="submit" value="BOOK" className="button"/>
                    </form>


                    <input type="submit" value="Show all trains" className="button" onClick={this.showAlltrains}/>

                    <input type="submit" value="Add a train" className="button" />
                    <br/><br/><br/><br/>

                    <table className="table-show-all-trains">
                        {trains}
                    </table>
                </div>

这是我实现的向rest api发送put请求并将名称传递给restapi以标识certian记录的方法。

handleSubmit: function (event) {
            event.preventDefault();
           var name = this.refs.name.value;
           var noOfTickets = this.refs.tickets.value;

            var data = {"name": name, "noOfTickets": noOfTickets};

            fetch('/api/trains/' + name{
                method : "PUT",
                body : JSON.stringify(data),
                headers: {'Content-type' : 'application/json'}
            }).then(function (data) {
                    return data.json();
                }).then(json => {
                    this.setState({
                        trains :json
                    });
            });
         },

这是rest api中处理put请求的代码片段。

router.put('/trains/:name', function(req, res, next){
Train.findByIdAndUpdate({name: req.params.name}, req.body).then(function(){
    Train.findOne({name: req.params.name}).then(function (train) {
        res.send(train);
        })
    })
});

当我使用id来识别记录时,应用程序工作正常,但是,让用户输入id来识别某个记录是不方便的。

所以,我从用户那里获取记录的名称,我需要通过传递用户输入的记录名称而不是id来标识数据库中的记录。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51604
 
495 次点击