我的MongoDB文档结构如下:
{
"_id" : ObjectId("56ebce0d1e3c51fe6a5053f3"),
"timestamp" : 1458294285,
"values" : [
{
"offset" : 132,
"packets" : [
{
"type" : "type1",
"data" : "some_data1"
},
{
"type" : "type2",
"data" : "some_data2"
}
]
}
}
我将它用于存储时间序列数据。 我想创建一个在数据包数组中插入数据包的查询。 我使用MongoDB c ++遗留驱动程序1.1.0。 当我将使用相同的时间戳和偏移量执行下面两次代码时:
mongo::BSONObj query = BSON("timestamp" << timestamp);
mongo::BSONObj mainObj =
BSON ("$push" << BSON("values" << BSON("offset" << timestampOffset <<
"packets" << BSON_ARRAY(obj))));
connection.update(collectionName, query, mainObj, true);
我有这样的结果:
{
"_id" : ObjectId("56f90c1a3b20b7c1f61dccf7"),
"timestamp" : 1459080000,
"values" : [
{
"offset" : 68457,
"packets" : [
{
"type" : "type1",
"data" : "some_data1"
}
]
},
{
"offset" : 68457,
"packets" : [
{
"type" : "type2",
"data" : "some_data2"
}
]
}
]
}
有人可以帮我创建正确的查询,以便将数据插入到具有特定结构的文档中吗?