使用mongoose在输出中创建新字段
我有一个简单的mongodb使用mongoose在输出中创建新字段,mongoose,mongoose-schema,Mongoose,Mongoose Schema,我有一个简单的mongodb { "name" :"rajesh", "age" : 38 }, { "name" :"vijay", "age" : 27 } 我想在我的猫鼬输出像这样 { "name" :"rajesh", "age" : 38, "temp" : "rajesh_38" }, { "name" :"vijay", "age" : 27, "temp" : "vijay_27" } sche
{
"name" :"rajesh",
"age" : 38
},
{
"name" :"vijay",
"age" : 27
}
我想在我的猫鼬输出像这样
{
"name" :"rajesh",
"age" : 38,
"temp" : "rajesh_38"
},
{
"name" :"vijay",
"age" : 27,
"temp" : "vijay_27"
}
schema.find(findObj)
.select({allExistingFields+newField})
请提供帮助。您可以使用/和使用MongoDB执行类似操作: 你可以 注意:由于使用了
$toString
您可以通过以下方式尝试使用猫鼬:
Model.aggregate([
{
$addFields: {
"temp": {
$concat: [
"$name",
"_",
{
$toString: "$age"
}
]
}
}
},
{
$project: {
_id: 0
}
}
])
您可以使用/和使用MongoDB执行以下操作: 你可以 注意:由于使用了
$toString
您可以通过以下方式尝试使用猫鼬:
Model.aggregate([
{
$addFields: {
"temp": {
$concat: [
"$name",
"_",
{
$toString: "$age"
}
]
}
}
},
{
$project: {
_id: 0
}
}
])
聚合时的方法是正确的方法,但是如果在很多查询中使用这个代码> TEMP字段,你可能会想它在你的模式上生成一个虚拟的,比如:
const personSchema = new Schema({
name: "String",
age: "Number"
});
personSchema.virtual('temp').get(() => {
return `${this.name}_${this.age}`
});
聚合时的方法是正确的方法,但是如果在很多查询中使用这个代码> TEMP字段,你可能会想它在你的模式上生成一个虚拟的,比如:
const personSchema = new Schema({
name: "String",
age: "Number"
});
personSchema.virtual('temp').get(() => {
return `${this.name}_${this.age}`
});
db.collection.aggregate???如何在mongoosemodel.aggregate(…)db.collection.aggregate???如何在mongoosemodel.aggregate(…)中使用它