嵌套的对象数组

时间:2017-08-13 10:23:34

标签: node.js mongodb mongoose

这是我的mongodb架构。

var Schema = mongoose.Schema;

var UserSchema = new Schema({
  created: {
    type: Date,
    Default: Date.now()
  },
  name: {
    type: String,
    default: "",
    // required: "Title Cannot Be Blank",
    trim: true
  },
  email: {
    type: String,
    default: "",
    // required: "Content is required",
    trim: true
  },
  rooms: [
    {
      roomId: "string",
      roomName: "String",
      pic: "string",
      read_count: "string",
      total_count: "string",
      read_notes_count: "string",
      total_notes_count: "string"
    }
  ],
  privatenotes: [
    {
      title: "string",
      desc: "string",
      notes: [
        {
          title: "string",
          time: "string"
        }
      ]
    }
  ],
  timetable: {
    day: [
      {
        id: "String",
        time: "String",
        M: "String",
        T: "String",
        W: "String",
        Th: "String",
        F: "String",
        S: "String",
        Su: "String"
      }
    ]
  }
});

我正在尝试更新并删除私人笔记中的笔记但是它给了我这个错误。      MongoError:不能使用部分(timetable.day的时间表)来遍历元素({timetable:[{day:[{eight:“Chemistry”}]}]})

我已经尝试使用$运算符,我现在尝试使用find和save方法但不能正常工作。

 User.findOne({ "_id": data.id},
        function(err, doc) {
            if (doc) {
                var index1;
                for (var i = 0; i < doc.privatenotes.length; i++) {
                    if (doc.privatenotes[i]._id == data.folderId) {
                        index1 = i;
                        break;
                    }
                }
                var index2;
                for (var j = 0; j < doc.privatenotes[index1].notes.length; j++) {
                    if (doc.privatenotes[index1].notes[j]._id == data.noteId) {
                        index2 = j;
                        break;
                    }
                }
                doc.privatenotes[index1].notes[index2].title = data.note;
                 doc.save(function(err) {
            if (err) {
                console.log(err);
            }else{
              console.log('Successfull')
            }

如何编辑笔记标题并从私密笔记中删除笔记?感谢

0 个答案:

没有答案