Mongodb mongoose:在对象内查找值,在对象数组内查找数组
你好,很抱歉给你起了个名字, 很难用语言来解释 我有一个多重级别的数据: -strategyParameters->[wsent->[{confirmationCandle.timestamp}]] 我试图请求文档,具有内部wSent、内部strategyParameters、大于某个值的确认烛光时间戳。 我尝试过几次类似的尝试:Mongodb mongoose:在对象内查找值,在对象数组内查找数组,mongodb,mongoose,mongodb-query,Mongodb,Mongoose,Mongodb Query,你好,很抱歉给你起了个名字, 很难用语言来解释 我有一个多重级别的数据: -strategyParameters->[wsent->[{confirmationCandle.timestamp}]] 我试图请求文档,具有内部wSent、内部strategyParameters、大于某个值的确认烛光时间戳。 我尝试过几次类似的尝试: db.getCollection('users').find({"exchange":"binance","pair
db.getCollection('users').find({"exchange":"binance","pair":"LTCUSDT","timeframe":"1h","wSent.confirmationCandle.timestamp":{"$gt":1606644800000}})
但这是不成功的,任何帮助都将不胜感激
下面是my db中文档的具体示例:
{
"_id" : ObjectId("5fd7b0f1356b89312949963a"),
"email" : "test@test.com",
"password" : "$2b$10$egeg",
"strategyParameters" : [
{
"_id" : ObjectId("5fd7c9940d0f3033fc527547"),
"pair" : "LTCUSDT",
"strategy" : "w",
"timeframe" : "1h",
"exchange" : "binance",
"wSent" : [
{
"_id" : ObjectId("5fd7adb9d157b430a05a87b1"),
"firstBottom" : {
"open" : 79.46,
"high" : 80.07,
"low" : 78.29,
"close" : 78.91,
"timestamp" : 1606690800000.0,
"isTop" : false,
"isBottom" : true
},
"top" : {
"open" : 78.89,
"high" : 80.5,
"low" : 78.87,
"close" : 79.7,
"timestamp" : 1606694400000.0,
"isTop" : true,
"isBottom" : false
},
"seconBottom" : {
"open" : 79.73,
"high" : 79.84,
"low" : 78.55,
"close" : 79.29,
"timestamp" : 1606698000000.0,
"isTop" : false,
"isBottom" : true
},
"confirmationCandle" : {
"open" : 81.56,
"high" : 85,
"low" : 81.1,
"close" : 83.24,
"timestamp" : 1606744800000.0, <-- the target
"isTop" : false,
"isBottom" : false
},
"exchange" : "binance",
"pair" : "LTCUSDT",
"timeframe" : "1h"
}
]
}
]
}
{
“_id”:ObjectId(“5FD7B0F1356B8931294993A”),
“电子邮件”:test@test.com",
“密码”:“$2b$10$egeg”,
“战略参数”:[
{
“_id”:ObjectId(“5fd7c9940d0f3033fc527547”),
“配对”:“LTCSDT”,
“战略”:“w”,
“时间框架”:“1h”,
“交换”:“二进制”,
“wSent”:[
{
“_id”:ObjectId(“5fd7adb9d157b430a05a87b1”),
“firstBottom”:{
“开放”:79.46,
“高”:80.07,
“低”:78.29,
“收盘”:78.91,
“时间戳”:1606690800000.0,
“isTop”:错误,
“isBottom”:正确
},
“顶部”:{
“开放”:78.89,
“高”:80.5,
“低”:78.87,
“关闭”:79.7,
“时间戳”:1606694400000.0,
“isTop”:是的,
“isBottom”:false
},
“seconBottom”:{
“开放”:79.73,
“高”:79.84,
“低”:78.55,
“结束”:79.29,
“时间戳”:1606698000000.0,
“isTop”:错误,
“isBottom”:正确
},
“确认蜡烛”:{
“开放”:81.56,
“高”:85,
“低”:81.1,
“结束”:83.24,
“时间戳”:1606744800000.0,您的查询不匹配,因为您正在搜索的字段与文档的结构不匹配。示例文档没有exchange
,pair
,timeframe
或wSent.confirmationCandle.timestamp
字段。但它确实有strategyParameters.wSent.exchangee> ,strategyParameters.wSent.pair
,strategyParameters.wSent.timeframe
和strategyParameters.wSent.confirmationCandle.timestamp
字段
您的查询应该如下所示:
db.getCollection("users").find({
"strategyParameters.wSent.exchange": "binance",
"strategyParameters.wSent.pair": "LTCUSDT",
"strategyParameters.wSent.timeframe": "1h",
"strategyParameters.wSent.confirmationCandle.timestamp": { $gt :1606644800000 }
})