Jika Anda ingin melakukan semacam itu, Anda mungkin ingin menyimpan data Anda dengan cara yang berbeda. MongoDB pada umumnya tidak sebagus memanipulasi dokumen bersarang sebagai bidang tingkat atas. Dalam kasus Anda, saya akan merekomendasikan memisahkan ptime, pt dan uid ke dalam koleksi mereka sendiri:
pesan
{
"_id":417,
"ptime":ISODate("2013-11-26T11:18:42.961Z"),
"type":"1",
"txt":"test message"
},
pengguna
{
"id":417,
"ptime":ISODate("2013-11-26T11:18:42.961Z"),
"uid":"52872ed59542f",
"pt":ISODate("2013-11-26T11:18:42.961Z")
},
{
"id":417,
"ptime":ISODate("2013-11-26T11:18:42.961Z"),
"uid":"524eb460986e4",
"pt":ISODate("2013-11-26T11:18:42.961Z")
},
{
"id":417,
"ptime":ISODate("2013-11-26T11:18:42.961Z"),
"uid":"524179060781e",
"pt":ISODate("2013-11-27T12:48:35Z")
}
Anda kemudian dapat mengatur indeks pada koleksi pengguna untuk uid, ptime dan pt.
Anda perlu melakukan dua kueri untuk juga mendapatkan pesan teks itu sendiri.