Arrays Mongo数据库查询数组
我有以下文件:Arrays Mongo数据库查询数组,arrays,mongodb,Arrays,Mongodb,我有以下文件: { "_id" : LUUID("8a831942-1dd6-1942-8759-c6275305d10d"), "Record" : "SEK_2Y_9Y", "RawDataDictionary" : [[ 1033, ""], [3355,""], [886,"45.8"],[874,"589"]], "TimeStamp" : ISODate("2015-02-10T16:27:14.847Z") } RawDataDictionary包
{
"_id" : LUUID("8a831942-1dd6-1942-8759-c6275305d10d"),
"Record" : "SEK_2Y_9Y",
"RawDataDictionary" : [[ 1033, ""], [3355,""], [886,"45.8"],[874,"589"]],
"TimeStamp" : ISODate("2015-02-10T16:27:14.847Z")
}
RawDataDictionary包含成对的代码和值
我希望所有文档的RawDataDictionary都包含一个包含874代码的项和任何不为null/空的值
所以[874,]不会服从它,但[874,某物]会
有什么想法吗
Doron。从2.6开始,我认为没有办法用MongoDB查询语言表达您对文档的条件。问题在于,无法表示非null/empty条件的any[second]值
db.test.find({ "RawDataDictionary" : [1033, ""] }) // ok
db.test.find({ "RawDataDictionary" : [874, { "$ne" : "" }) // nope
如果修改RawDataDictionary字段的结构,则可以使用执行查询:
{
"Record" : "SEK_2Y_9Y",
"RawDataDictionary" : [
{ "code" : 1033, "value" : "" },
{ "code" : 3355, "value" : "" },
{ "code" : 886, "value" : "45.8" },
{ "code" : 874, "value" : "589" }
],
"TimeStamp" : ISODate("2015-02-10T16:27:14.847Z")
}
db.test.find({ "RawDataDictionary" : {
"$elemMatch" : {
"code" : 874,
"value" : { "$nin" : ["", null] }
}
} })