【发布时间】:2017-08-24 16:43:04
【问题描述】:
我有一个 mongo 集合“测试”,其中包含这样的元素(节点数组是一个集合且有意义的顺序):
"test" : {
"superiorID" : 1,
"nodes" : [
{
"subID" : 2
},
{
"subID" : 1
},
{
"subID" : 3
}
]
}
或
"test" : {
"superiorID" : 4,
"nodes" : [
{
"subID" : 2
},
{
"subID" : 1
},
{
"subID" : 3
}
]
}
我正在使用 spring Criteria 来尝试构建一个 mongo 查询,它将向我返回“subID”等于用户输入 ID“inputID”的所有元素>' AND 'superiorID' 位置不在 'inputID' 之前(如果上级 id 甚至在 sub ids 不是必需的)。
例如,如果我的用户输入是 3,我不想提取第一个文档,但我想提取第二个文档(第一个存在于节点中的上级在 userInput 节点之前的节点中,第二个的上级 ID 不是等于用户输入)。
我知道 $indexOfArray 函数存在,但我不知道如何将其转换为 Criteria。
【问题讨论】:
-
可能是我没有正确理解这一点。像
db.collection_name.find({"nodes.subID":3, "superiorID":{"$gt":3}})这样的东西应该适合你。您可以将代码添加到您尝试过的帖子中吗?
标签: mongodb mongodb-query spring-data-mongodb