Javascript Mongoose检索对象数组。对于每个对象,我只需要两个属性
我只是在用JavaScript练习猫鼬 我的猫鼬模式如下:Javascript Mongoose检索对象数组。对于每个对象,我只需要两个属性,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我只是在用JavaScript练习猫鼬 我的猫鼬模式如下: const item = new mongoose.Schema({ name: { type: String, required: true, unique: true }, qty: { type: Number, required: true }, costPrice: Number }); const supplySchema = new mongoose.Schem
const item = new mongoose.Schema({
name: {
type: String,
required: true,
unique: true
},
qty: {
type: Number,
required: true
},
costPrice: Number
});
const supplySchema = new mongoose.Schema({
items: [item]
});
const Supply = mongoose.model("Supply", supplySchema);
现在我只想使用mongoose检索项的数组
我希望我的数据如下所示:
[
{
"name" : "Lemon",
"qty" : 5
},
{
"name": "Sugar",
"qty": 5
}
]
[
{
"_id": "5e4df1c1d48926133879f650",
"costPrice": 0.4,
"name": "Sugar",
"qty": 5
}
]
但现在我得到的数据是这样的:
[
{
"name" : "Lemon",
"qty" : 5
},
{
"name": "Sugar",
"qty": 5
}
]
[
{
"_id": "5e4df1c1d48926133879f650",
"costPrice": 0.4,
"name": "Sugar",
"qty": 5
}
]
我尝试在下面编写这样的代码,但它不起作用:
const supplyDoc = await Supply.findOne();
const supplies = await supplyDoc.items.select("-_id");
return supplies;
我想我可以在项目上使用投影,并指定数组中的每个对象不需要_id属性。但是我的代码不起作用。我可以利用mongoose或MongoDB方法吗?或者我必须使用javascript来操作数组吗
希望听到一些建议。谢谢大家! 如果需要项数组,首先应该使用Model.find()而不是Model.findOne()
是的,您可以使用“投影”参数来选择所需的字段
所以
const supplies=wait Supply.find({},“name-qty”).exec()
编辑:显然,您需要特别排除_id字段,您可以使用-
作为前缀
const supplies=wait Supply.find({},“-\u id name qty”).exec()
试着这样做
let supplies= await models.Supplier.find( { }, { name:1,qty:1,_id: 0 } )
我已修改以遵循您的代码。因此检索到的数据是:``[{“name”:“Sugar”,“qty”:5},{“name”:“Ice”,“qty”:5,“\u id”:“5e4e005a96944c0c1c46dbc1”}```但是现在的情况是每个项都有自己的\u id
,并且\u id
被检索。如何“删除”此属性?在投影字符串中添加-\u id