Mongo集合doc组织和查询

时间:2010-11-22 08:59:45

标签: mongodb nosql

我的日志文档中嵌入了日志列表:

{ 
    type:'logbook',
    name:'my book',
    userRef:2,
    cdate: ....,
    logs: [
      { 
          color: 'red',
          weight: 200,
          cdate: ...,
          foo: 'bar'
      },
      { 
          color: 'blue',
          weight: 100,
          cdate: ...,
          foo: 'bar'
      },
      { 
          color: 'green',
          weight: 240,
          cdate: ...,
          foo: 'bar'
      }
    ]

我想显示给定日志的分页有序日志条目。

是否可以使用mongo从这样的结构中提取那些?

如果不是,我应该为日志设置logEntries集合吗?

由于

1 个答案:

答案 0 :(得分:1)

您可以使用field selection指定要检索的文档部分。要选择数组字段的一部分,可以使用$slice operator,例如:

// select the name and a range of log entries from the document
db.logbooks.find({ name: "my book" }, { name: 1, logs: { $slice: [10, 5] } })

请注意,除了插入顺序之外的任何日志条目排序都必须在客户端完成。