簡體   English   中英

如何獲取KEY大於X的文檔

[英]How to get documents where KEY is greater than X

我正在記錄用戶對我平台的日常使用情況。

mongodb中文檔的結構如下:

_id: X
day1:{
    loginCount = 4
    someDict { x:y, z:m }
    }
day2:{
    loginCount = 5
    someDict { a:b, c:d }
    } 

然后,我需要獲取屬於用戶X的最近2天的用戶統計信息。

我怎樣才能獲得大於兩天前的值? (例如使用“ $ gte”命令?)

好的,如果您堅持使用此方案,請嘗試以下操作:

{
_id: Usemongokeyhere
userid: X
days: [
         {day:IsoDate(2013-08-12 00:00), 
          loginCount: 10,
          #morestuff
         },
         {day:IsoDate(2013-08-13 00:00), 
          loginCount: 11,
          #morestuff
         },
      ]
},
#more users

然后您可以像查詢:

db.items.find(
    {"days.day":{$gte:ISODate("2013-08-30T00:00:00.000Z"),
                $lt: ISODate("2013-08-31T00:00:00.000Z")
                }
    }
)

除非問題有任何變化,否則我將基於此架構進行回答。

_id: X
day1:{
   loginCount:4
   someDict:{ x:y, z:m }
}
day2:{
  loginCount:5
  someDict:{ a:b, c:d }
} 

屬於用戶X的最近2天的用戶統計信息。

使用這種結構,您無法從像$ gte這樣的運算符的mongo端獲得它,因為您可以獲得查詢用戶X的整天信息。我認為文檔包含有關整天信息並保留動態值作為鍵是我的一種不好的做法。 您可以通過定義db.collection.find({_ id:X},{day1:1,day2:1})之類的字段來檢索文檔

但是,您必須知道鍵是什么,我不確定如何將day1和day2保留為鍵iso日期,時間戳? 根據您持有查詢的方式,您可以通過在昨天和昨天之前以日期字符串或時間戳的形式編寫查詢字段,以獲取所需的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM