在mongoDB中有序的固定长度数组

时间:2016-06-18 21:20:21

标签: arrays mongodb

我是monogDB的新手,并尝试设计我存储数据的方式,以便我可以进行我想要的各种查询。说我有一个看起来像

的文件
{
    "foo":["foo1","foo2","foo3"],
    "bar":"baz"
}

阵列" foo"总是长度为3,项目的顺序是有意义的。我希望能够创建一个查询,搜索所有文件,其中" foo2" ==东西。基本上我想要治疗" foo"像任何旧数组一样,并且能够在搜索中对其进行索引,所以类似于" foo" [1] ==某事。

monogDB是否支持此功能?存储我的数据会更正确吗,

{
    "foo":{
        "foo1":"val1",
        "foo2":"val2",
        "foo3":"val3"
    },
    "bar":"baz"
}

代替?感谢。

1 个答案:

答案 0 :(得分:2)

您提出的架构很好。

要插入数组的特定索引: 使用$position运算符。阅读here

要在特定索引位置查询: 使用语法key.index。如:

db.users.find({"foo.1":"foo2"})