You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅在屏幕打印MongoDB中插入的条目?

如何仅打印MongoDB插入的条目内容而非完整CommandResult?

我用这段Node.js代码往MongoDB插入数据:

var mongo = require('mongodb'); //Establishing the connection
var new_db = "mongodb://localhost:27017/demo_db" //File Name is : demo-db.js
//establishing the connection
mongo.connect(new_db ,(error , client) => {
  if (error){ throw error; }
  var db = client.db('mytestdb');
  //console.log("Database demo_db created successfully");
  //To close the connection
  var data ={ name : "name" , age : "age" , nation : "VN" }
  db.collection("details").insertOne(data,(err , coll) => {
    if(err) throw err;
    console.log(coll);
  });
  client.close();
});

执行后,console.log(coll)打印出来的是一堆冗余的CommandResult JSON对象,我只想要看到插入的name、age、nation这些内容,该怎么改?


你只需要访问CommandResult对象里的ops属性就可以拿到插入的文档啦!insertOne返回的结果对象中,ops是一个数组,里面包含了刚刚插入的完整文档(还会带上MongoDB自动生成的_id字段)。

修改你的代码里的console.log部分就行:

db.collection("details").insertOne(data,(err , coll) => {
  if(err) throw err;
  // 打印插入的第一个(也是唯一一个)文档
  console.log(coll.ops[0]);
});

这样就能直接输出你插入的条目内容,比如:

{ name: 'name', age: 'age', nation: 'VN', _id: ObjectId("xxxxxx") }

另外还有个小提醒:你现在的client.close()放在了insertOne的回调外面,这可能会导致连接在插入操作完成前就被关闭,最好把client.close()移到回调函数里面,确保操作完成后再关闭连接:

db.collection("details").insertOne(data,(err , coll) => {
  if(err) throw err;
  console.log(coll.ops[0]);
  client.close(); // 移到这里
});

这样就不会出现潜在的异步问题啦!


内容的提问来源于stack exchange,提问作者Anh Tú Mai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:27:03