我很清楚如何将$exists
用于文档中的键,但是如何针对键的特定值进行操作呢?
我有一个User集合和一个Log集合。对于所有可能的用户,我需要在一段时间内找到密钥中没有特定值的用户。
示例:我希望所有没有记录文档的用户使用key-valye对"action":"login"
。
我想这样做,首先我将所有用户ID放在一个数组中:
var allUsers = [];
db.Usuario.find({},{_id:0,terminal:1}).forEach(function(d){allUsers.push(d.terminal)});
但我对如何构建此操作的NOT EXISTS步骤感到困惑。 另外,是否有更有效的方法来实现上述用户阵列?
到目前为止我所拥有的:
db.Logging.find({
/* what do I put in here? */,
"terminal": { $in: allUsers },
"timestamp": { $gte: dateToTimestamp('2017-12-06') }
})