gpt4 book ai didi

Mongodb:findById() 不返回任何值

转载 作者:可可西里 更新时间:2023-11-01 10:15:03 26 4
gpt4 key购买 nike

即使数据库中存在 id,以下 findById() 也会返回 null:

router.get('/product/:id', function (req, res) {

console.log("product id = " + req.params.id);

//produces product id = 596161e1734d1d25634366ce

var id = req.params.id;

Product.findById({_id: req.params.id})
.exec(function (err, product) {
if (err) {
console.error('Error retrieving all product by id!');
} else {
console.log('server product = ' + JSON.stringify(product));
res.json(product);
}
})
})

数据库中的目标文档:

{
"_id": {
"$oid": "596161e1734d1d25634366ce"
},
"producttype": "stove",
"name": "30 in. 4.8 cu. ft. Electric Range in Stainless Steel",
"brand": "Amana",
"model": "AER6303MFS",
}

型号:

const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const ProductSchema = new Schema({
_id: String,
productType: String,
name: String,
brand: String,
model: String,
price: Number,
discount: Number,
description: String,
rating: Number,
sku: String,
warranty: String,
});

var Product = mongoose.model('Product', ProductSchema, 'product');
module.exports=Product;

最佳答案

尝试从您的 ProductSchema 中删除 _id。 id 将由 mongodb 自动生成。之后尝试使用

Product.find({_id: req.params.id})
.exec(function (err, product) {
if (err) {
console.error('Error retrieving all product by id!');
} else {
console.log('server product = ' + JSON.stringify(product));
res.json(product);
}
})
})

或者如果你想使用通过 id 查找然后使用

Product.findById(req.params.id)
.exec(function (err, product) {
if (err) {
console.error('Error retrieving all product by id!');
} else {
console.log('server product = ' + JSON.stringify(product));
res.json(product);
}
})
})

关于Mongodb:findById() 不返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45064161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com