布赖恩有一些很好的建议,你应该听从。而且,正如Manoj所说,你实际上拥有的是一组对象。以下可能会帮助你有点...
列表只是排序的序列:[1,2,3...]
或[2,292,111]
在过去的例子中的第一个元素是2,第二个是292 ...列表/阵列表示用方括号[ ]
对象映射键的值:{ name: "Tyler", age: 26, fav_color: "green" }
更名为“泰勒”,年龄地图映射到25,等等...而对象按括号表示{ }
mongodb中的文档是一个对象。所以,如上所述,他们将键映射到值。这些值可以是字符串,数字,数组或其他(嵌套)对象)
所以,让我们来看看您的文件。你有一个包含key id,name,other和multipleArray的对象(文档)。多重数组映射到的值是对象{ }
的数组[ ]
。
{
id: x,
name: y,
other: z,
multipleArray: [
{lab1: "A", lab2: "B", lab3:"C"},
{lab1: "AB", lab2: "BB", lab3:"CB"},
{lab1: "AC", lab2: "BC", lab3:"CC"}
]
}
MongoDB中有这个功能叫做multikeys,它基本上把你要查询的价值,并试图匹配它的阵列中的每个值。
如果你想找个地方multipleArray
包含在文档{lab1: "A", lab2: "B", lab3: "C"}
文档,您查询是这样的:db.data.find({multipleArray: {lab1: "A", lab2: "B", lab3: "C"}})
我假设已定义的x,y和z。
还有更多的微妙之处和复杂性,但是如果您想了解更多信息,请阅读mongodb网站上的文档here或者获得一本书。
在你的例子中,multipleArray不是阵列的数组。它只是一组对象。你确定你的输入是正确的吗? – Manoj 2011-12-23 10:59:24
你好,对不起,我的知识不足。在这种情况下,数组数组和数组对象的区别是什么?你能解释一下吗?谢谢。 – Phil 2011-12-23 11:28:33