【发布时间】:2020-11-06 04:24:25
【问题描述】:
我很难理解为什么 $push 在嵌套数组中只创建一个元素并且只显示该元素的 id
const mongoose = require('mongoose');
let historySchema = new mongoose.Schema({
time: {
type:String
}
})
//users schema
let userSchema = new mongoose.Schema({
name:{
type:String,
},
dob:{
type:String,
},
email:{
type:String,
},
noOfpeopleClimbing:{
type: Number,
default:0
},
details:{
type:String,
},
status:{
type: Boolean,
default: false
},
timeIn:{
type: Number,
default: 0
},
timeOut:{
type: Number,
default: 0
},
timeFinal:{
type: Number,
default: 0
},
timeHistory:[{historySchema}]
})
let User = module.exports = mongoose.model("User", userSchema);
我说的是 timeHistory:[{historySchema}] 其余的你可以忽略。 我正在运行下一个测试:
app.post('/users/reset_timeIn/:id', function(req,res){
Users.findOneAndUpdate({_id:req.params.id},{
timeIn:0,
timeOut:0,
timeFinal:0,
timeHistory:{
$push: {time:"some text" }
},
status:false,
noOfpeopleClimbing:0
},function(err){
if(err){
console.log(err);
return
}else{
res.redirect(req.get('referer'));
}
})
});
time:"some text" 仅用于测试。这个测试的输出,不管我推了多少次,都是这样的:
{
"noOfpeopleClimbing": 0,
"status": false,
"timeIn": 0,
"timeOut": 0,
"timeFinal": 0,
"_id": "5fa3faa68b302530fcb6bba5",
"name": "Name",
"dob": "1666-02-02",
"email": "name@name.com",
"__v": 0,
"details": "name",
"timeHistory": [
{
"_id": "5fa44343aece7d37dc532fd9"
}
]
},
“timeHistory”应该包含 id 和字段时间:“一些文本”,对吗?如果我推动另一条记录在该数组的第二个对象中拥有该记录?正确的?请帮忙
【问题讨论】:
标签: javascript node.js mongodb mongoose