0

我有一个如下结构:

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

这种事情的正确语法是什么样的?这样的查询可能吗?

4

1 回答 1

1

我不会说 mongoid,但这是在 shell 中执行此操作的方法:

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

0键名中的 标识数组的第一个元素messages

于 2013-08-05T21:02:16.137 回答