是否可以显示整个更新记录而不是仅显示更新字段?

Is it possible to show the whole updated record instead of the updated field only?

所以基本上,我正在创建一个库存管理应用程序,并希望在某种意义上向用户显示更新的记录,而不仅仅是更新的字段,而是整个文档本身。我的问题是

*如何向用户显示整个更新记录而不是更新字段? *

我正在使用邮递员对此进行测试api。这是我的代码,有注释的是我试过的。

var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
var url = 'mongodb://localhost:27017/myproject';

module.exports = {
/*getCollection : function(req, res){
    var issueQty = req.body.issueQty;
    var itemDescrip = req.body.itemDescrip;
    MongoClient.connect(url,function(err,db){
        assert.equal(null,err);
        var doc = findMultiple(db,req,function() {
            db.close();
        });
    });
        res.send(doc)
}*/
postCollection : function(req, res){
    var issueQty = req.body.issueQty;
    var itemDescrip = req.body.itemDescrip;
MongoClient.connect(url, function(err, db) {
    assert.equal(null, err);
    updateRecord(db, req, function() {
    db.close();
    });
    //findMultiple(db, req, function(){
    //db.close();
    //});
});
    res.send('Record Found. Now updating this document...' + itemDescrip + ' 
Record Updated. This is the new record with updated issueQty '
    + issueQty )
}
}
var updateRecord = function(db, req, callback) {
db.collection('documents').updateMany(
  { 'Item Description': req.body.itemDescrip},
  {
    $set: { 'Issued QTY': req.body.issueQty }
  }
  ,
  function(err, results) {
    console.log(results);
    console.log('Done');
    callback(); 
});
};
/*var findMultiple = function(db, req, callback){
 var issueQty = req.body.issueQty;
 var itemDescrip = req.body.itemDescrip;
 var cursor = db.collection('documents').find({'Issued QTY': issueQty, 'Item 
 Description': itemDescrip});
 cursor.each(function(err,doc){
     assert.equal(err,null);
     if(doc != err){
         console.log('Successfully queried');
         console.log(doc);
         return doc;
     } else {
        callback();
     }

 });
};*/

我尝试使用另一个函数 findMultiple 来获取数据并在响应中显示更新的记录,但它没有用,我考虑过将我的查询 api 和更新 api 链接在一起但我不知道该怎么做。感谢任何帮助,谢谢!

您需要:

  1. updateRecord()内部,使用更新操作的results对象调用回调
  2. postCollection() 中,传递给 updateRecord() 的回调将有权访问 results 对象


postCollection : function(req, res){
  var issueQty = req.body.issueQty;
  var itemDescrip = req.body.itemDescrip;
  MongoClient.connect(url, function(err, db) {
    assert.equal(null, err);
    updateRecord(db, req, function(results) {
    res.send('Document...') //Do what you want with results here
    db.close();
  });
});

var updateRecord = function(db, req, callback) {
  db.collection('documents').updateMany(
    {'Item Description': req.body.itemDescrip},
    {$set: { 'Issued QTY': req.body.issueQty }},
    function(err, results) {
      console.log(results);
      console.log('Done');
      callback(results); //pass results to the callback
    });
 };