Tôi có một bộ sưu tập "công ty" với một số đối tượng. Mỗi đối tượng có tham số "_id". Tôi đang cố gắng để có được thông số này từ db:NodeJS + MongoDB: Lấy dữ liệu từ bộ sưu tập với findOne()
app.get('/companies/:id',function(req,res){
db.collection("companies",function(err,collection){
console.log(req.params.id);
collection.findOne({_id: req.params.id},function(err, doc) {
if (doc){
console.log(doc._id);
} else {
console.log('no data for this company');
}
});
});
});
Vì vậy, tôi yêu cầu các công ty/4fcfd7f246e1464d05000001 (4fcfd7f246e1464d05000001 là _id-parma của một đối tượng tôi cần) và findOne trả gì cả, đó là lý do tại sao console.log (' không có dữ liệu cho công ty này '); thực hiện.
Tôi hoàn toàn chắc chắn rằng tôi có một đối tượng với _id = "4fcfd7f246e1464d05000001". Tôi đang làm gì sai? Cảm ơn!
Tuy nhiên, tôi vừa nhận thấy rằng id không phải là trường chuỗi điển hình. Đó là những gì mViewer cho thấy:
"_id": {
"$oid": "4fcfd7f246e1464d05000001"
},
Có vẻ là lạ một chút ...
Đó là một ObjectId. Trong truy vấn của bạn, bạn nên xây dựng một từ chuỗi (Tôi ngạc nhiên rằng thư viện không làm điều đó cho bạn). –