mongodb查询过滤,通过计算测距复合字段

mongodb查询过滤,通过计算测距复合字段,mongodb,Mongodb,假设集合具有如下结构 { "_id": ObjectId("5fd8825285e55e381e278b30"), "name": "some name", "ts" : { "seconds" : NumberLong(1608024657), "nanos" : 519000000 } } 如何过滤某些((ts.seconds

假设集合具有如下结构

{
  "_id": ObjectId("5fd8825285e55e381e278b30"), 
  "name": "some name",
  "ts" : {
    "seconds" : NumberLong(1608024657), "nanos" : 519000000
  }
}
如何过滤某些
((ts.seconds*100000000)+ts.nano)<1234567890123456


查询筛选器应该从某些字段计算出一个值,并使用该值进行筛选。

使用
$sum
$multiply
运算符进行算术运算:

db.yourCollection.find({
$expr:{$lt:[{
$sum:[{$multiply:[“$ts.seconds”,100000000]},“$ts.nanos”]
}, 1234567890123456] }
});

使用
$sum
$multiply
运算符进行算术运算:

db.yourCollection.find({
$expr:{$lt:[{
$sum:[{$multiply:[“$ts.seconds”,100000000]},“$ts.nanos”]
}, 1234567890123456] }
});

不工作,错误:
MongoDB服务器版本:4.4.2未捕获异常:引用错误:未定义ts:…
@Michaelzh抱歉…字段名需要用双引号括起来。请重试。不起作用:错误:
MongoDB服务器版本:4.4.2错误:错误:{“确定”:0,“errmsg”:“未能优化表达式::原因::$multiply仅支持数字类型,不支持字符串”,“code”:16555,…。}
使用
“$ts.seconds”
“$ts.nanos”
等不起作用,错误:
MongoDB服务器版本:4.4.2未捕获异常:ReferenceError:ts未定义:…
@Michaelzh抱歉…字段名需要用双引号括起来。请重试。不工作:错误:
MongoDB服务器版本:4.4.2错误:错误:{“确定”:0,“errmsg”:“未能优化表达式::原因::$multiply仅支持数字类型,不支持字符串”,“code”:16555,…。}
使用
“$ts.seconds”
“$ts.nanos”
等。