我正在从MongoDb查询中返回数据
{
"site": "def",
"ip": "123.0.0.2",
"context": "home",
"uri": "could-bit",
"t": {
"sec": 1516731260,
"usec": 742000
}
}'
我希望消除t Object属性,并仅保留“sec”属性。
我尝试用
这样做$db->$collection->find(['t' => array('$gt' => $gte, '$lt' => $lte)], ['site' => true, 'ip' => true, 'uri' => true, 'context' => true, 't.sec' => true, '_id' => false])
但它不起作用
答案 0 :(得分:1)
您应该使用聚合框架
db.collection.aggregate([
{ $match: { t: { $gt: value1, $lt: value2 } },
{
$project: {
_id: 1,
site: 1,
ip: 1,
context: 1,
uri: 1,
sec: "$t.sec"
}
}
])
$match
将完全符合您find
中的过滤条件。