mongos インスタンスで count() 関数の奇妙な動作があります。タグ オブジェクトを配列に変換する必要があったため、1 時間以上前に投稿コレクションの約 8,000 項目を更新しました。
今、mongosに次のクエリを実行すると:
mongos> db.posts.find({blog: 'blog1', tags: {$type: 3}}).count()
4139
mongos> db.posts.findOne({blog: 'blog1', tags: {$type: 3}})
null
RS が同期されている場合でも、count() が 4139 個のアイテムを表示し、findOne が null 値を返すのはなぜですか?
編集: 4 つの RS があります (すべて同期)。また、すべての PRIMARIES で同じカウント クエリを実行しましたが、結果は常に 0 です。mongos をカウントした場合にのみ、結果は 4139 になります。