繁体   English   中英

Mongodb深嵌入式对象数组查询

[英]Mongodb Deep Embedded Object Array Query

嗨我在使用mongoose更新嵌入式对象数组时遇到问题!

这是Schema:

var event = {
    eTime : [String]
};

var schedule = {
    events: [event]
};

var group = {
    gName: {type:String},
    sDate:  { type: Date, default: Date.now },
    schedules: [schedule]
}; 

MainSchema {
    id          :   String,
    groups      :   [group]
};

我想要做的是用事件对象更新事件中的eTime数组。 我正在使用此查询

db.demoDb.update({
   'id': 'MongoDb', 
   'groups':{
       $elemMatch:{
           'gName':'noSql'
       }
    }
 },
 {
    $push:{
      'groups':{
          'schedules':{
              'events':{
                   'eTime':'01-Marach-15'
               }
           }
       }
    }
  }
)

但是scheduleles-> events-> eventTime没有用值更新!!!

我在这做什么错?

我的主要场景是找到具有关联gName的id(MongoDB),然后更新其scheduleles数组。

我的查找查询工作得很好,但无法更新计划......事件可能很多

如果我正确地读取您的模式,核心部分是一个包含数组的数组,该数组包含一个包含字符串数组的数组。 我认为你会更好地“反转”架构,以便每个文档代表一个事件。 可以将分组多个事件的元数据复制到每个事件文档中。 一个例子:

{
    "event" : "cookie bake-off",
    "gName" : "baking",
    "sDate" : ISODate("2015-03-02T21:46:11.842Z")
}

您正在努力的更新转换为在集合中插入新的事件文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM