2017-12-07 2 views
0

$existsをドキュメントのキーに使用する方法はかなりわかりましたが、キーの特定の値に対してどのように処理するのですか?MongoDBの値に対してNOT EXISTSを実行する方法

私はUserコレクションとLogコレクションを持っています。私は、すべての可能なユーザーのために、一定期間キーの特定の値を持たないユーザーを見つける必要があります。

例:キーバリューペア"action":"login"を持つロギングドキュメントを持たないすべてのユーザーを欲しいです。

は、私が最初に私がアレイ内のすべてのユーザーIDを入れて、このようにそれをやって考えた:

var allUsers = []; 
db.Usuario.find({},{_id:0,terminal:1}).forEach(function(d){allUsers.push(d.terminal)}); 

しかし、私は私ではないが、この操作の手順をEXISTS建設する方法については困惑しています。 また、上記のユーザーアレイをより効率的に達成する方法はありますか?私がこれまで持って何

db.Logging.find({ 
    /* what do I put in here? */, 
    "terminal": { $in: allUsers }, 
    "timestamp": { $gte: dateToTimestamp('2017-12-06') } 
}) 
+0

それほど複雑ではありません。しかし、適切な答えを得るためには、サンプルデータを投稿する必要があります。 – dnickless

答えて

-1

$が存在するが - このキーは、特定の文書に存在するか否かを使用しています。

$in - 配列内のものを検索するためのもので、内部的にOR条件を使用しています。

$nin - 私は配列に存在しない文書を取得するために、これが使用され、これはあなたが探しているものだと思います

EG-db.inventory.find({数量:{ $ nin:[5、15]}})db.inventory.find({qty:{$ nin:[5,15]}})enter code here

+0

申し訳ありませんが、質問には全く答えません。 –

関連する問題