2017-06-21 10 views
0

「MongoDBとNode.jsを使ったWeb開発」の第7章のこのコードはどうにか動作しません。TypeError:未定義(MongoDBとNode.js)の '_id'プロパティを読み取ることができません

誰もが理由を説明し、解決策を提案することはできますか?

私が行[10]をコメントアウトした場合は[0] ._ ID

、私はエラーが表示されません問題は、ドキュメントであるようです。

ここには、本から直接コピーされた完全なコードがあります。

1 var MongoClient = require('mongodb').MongoClient; 
2 
3 MongoClient.connect('mongodb://localhost:27017/mongotest', function(err, db) { 
4 console.log('Connected to MongoDB!'); 
5 
6 var collection = db.collection('testing'); 
7 collection.insert({'title': 'Snowcrash'}, function(err, docs) { 
8  console.log(docs.length + ' record inserted.'); 
9  console.log(docs[0]._id + ' - ' + docs[0].title); 
10 
11  collection.findOne({title: 'Snowcrash'}, function(err, doc) { 
12   console.log(doc._id + ' - ' + doc.title); 
13   db.close(); 
14  }); 
15 }); 
16 }); 

いくつかのグーグルの後、私は修正を見つけました。より多くの手がかりを見つけ

MongoDB. Undefined record inserted. Cannot read property 'title' of undefined

console.log(docs.ops.length + ' record inserted.'); 
console.log(docs.ops[0].title + ' – ' + docs.ops[0]._id); 

: 結果オブジェクト上の段落を参照してくださいhttps://www.w3schools.com/nodejs/nodejs_mongodb_insert.asp をチェックしてください。

でも、誰でも追加の方法を説明できます.opsは違いがありますか?

また、ライン[9]のために、なぜ[0]ドキュメントを追加する必要がありますか?

+0

申し訳ありません。あなたはその質問がどのように同じであるか説明できますか?エラーは同じように見えることがあります。しかし、考えられる原因は異なる可能性があります。ありがとう。 – WCPOH

答えて

0

insert()は、操作のステータスを含むWriteResultオブジェクトを返します。成功すると、WriteResultオブジェクトには、挿入されたドキュメントの数に関する情報が含まれます。

WriteResult({ "nInserted" : 1 }) 
関連する問題