查询第一个子文档

时间:2013-08-05 18:20:50

标签: mongodb mongoid

我有如下结构:

thread {
  messages [
    {
      sender_id: AB12CD34,
      ...stuff...
    },
    {
      sender_id: EF56GH78,
      ...stuff...
    }
  ]
}

我想查询FIRST消息的sender_id是id集合的一部分的线程。有点像...

def threads_started_by_users user_ids
  any_in('messages:first.sender_id', user_ids)
end

这样的事情的正确语法是什么样的?这样的查询是否可行?

1 个答案:

答案 0 :(得分:1)

我不会说mongoid,但是你可以在shell中执行此操作:

db.coll.find({'thread.messages.0.sender_id': {$in: user_ids}})

密钥名称中的0标识messages数组的第一个元素。