我用的是发现没关系:
{
$and:[
{"online":1},
{"uptime":{$gte: new Date(2012,8,16,2,51)}}
]
}
以下命令也没关系:
{
geoNear : "Driver",
near : [120.105148,30.447977 ],
num : 100,
spherical : true,
maxDistance :500/6378,
query:{"online":1}
}
但是我使用geoNear命令和Geospatial索引,我无法得到任何东西:
{
geoNear : "Driver",
near : [120.105148,30.447977 ],
num : 100,
spherical : true,
maxDistance :500/6378 ,
query:{
$and:[
{"online":1},
{"uptime":{$gte: new Date(2012,8,16,2,51)}}
]
}
}
要求是: 我想让在线客户在10分钟内更新位置,怎么办? 我创建了名为“pos”的地理空间索引,包括列:正常运行时间和在线
感谢。
答案 0 :(得分:0)
您不需要$和查询。如果添加两个字段,则仅返回符合这两个条件的文档。
试试这个:
db.runCommand(
{
geoNear : "Driver",
near : [120.105148,30.447977 ],
num : 100,
spherical : true,
maxDistance :500/6378 ,
query: { "online": 1,
"uptime": {$gte: new Date(2012,8,16,2,51)}
}
}
)
只有当你想在同一个字段上有两个条件,或者你想要制定涉及$和$或的更复杂的逻辑查询时,才需要$和。有关详细信息,请参阅$and documentation。
答案 1 :(得分:0)
{
geoNear : "Driver",
near : [120.105148,30.447977 ],
num : 100,
spherical : true,
maxDistance :500/6378 ,
query:{
$or:[
{"online":2},
{"online":1,"uptimestap":{$gte: 1348156800000}}
]
}
}