若collection裡有其他的資料,顯示時注意要往query裡新增true,並且需要放在最前面。
解釋:下圖是名為test的collection裡面的資料。可以看到上面5條是一樣的資料,第6條是為了測試故意新增進去的。
首先,當你執行命令db.getcollection('test').find({},),結果如下。
很明顯,沒有day的第六條也出來了。當然有人會說,你這第乙個條件為空,當然這樣了(實際上這個分析是非常正確的)。是的,但是假如我再造一條資料剛好有day這個字段,但沒有price和time,這條資料對我來講不像前4條資料一樣有意義。為了篩選,可能需要執行以下的命令:db.getcollection('test').find(},)
這時結果如下:
那條叫aa,b的資料就被過濾掉了。
問題來了,當執行db.getcollection('test').find(})這條命令時,結果如下
你會發現"day":3這個條件根本不起作用,被遮蔽了。但當你換乙個順序,命令改為db.getcollection('test').find(,"day":3}),結果為想要的0,是不是很神奇。
Mybatis的乙個小坑
以前一直用的ibatis,前陣子才改用的mybatis,對於一些細節不太了解,所以踩了這個坑。廢話不多說,上 下面是出問題的sql語句 insert into g label obj relation his id label obj relation,id label,followed obj c...
sprintf sscanf中的乙個小坑
char buf 32 sprintf buf,s,d test 100 char out 32 int i 0 sscanf buf,s,d out,i 這段 開始以為會正常執行,結果卻是crash。sscanf在解析 s的時候遇到空格 指標符號 n才會停止解析,而這個 s後面的逗號基本上是乙個擺...
最近踩的乙個小坑
最近需要實現乙個業務,大致的內容是為了提高效率,把資料庫中的資訊定時同步到記憶體中,然後使用記憶體查詢,提高效率。然後在實現過程中遇到了乙個問題,需要同步的資訊約9萬條,但是這9w條資料對應了133w個,大概乙個id十幾張吧。儲存這些的時候,遇到了小問題。專案原本使用的結構是 list vin1,1...