Mongodb 带$push的mongo组不允许重复密钥
我有以下文件结构:Mongodb 带$push的mongo组不允许重复密钥,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我有以下文件结构: { readings:[ {"timestamp":"1234","data":"9"}, {"timestamp":"1234","data":"90"}, {"timestamp":"12" "data":"100"}] } 是否可以使用重复的键对三个数组进行分组 预期结果: { "readings":["1234","1234","12"] } [ { $group: { _id: "null", readings: {
{
readings:[
{"timestamp":"1234","data":"9"},
{"timestamp":"1234","data":"90"},
{"timestamp":"12" "data":"100"}]
}
是否可以使用重复的键对三个数组进行分组
预期结果:
{
"readings":["1234","1234","12"]
}
[
{
$group: {
_id: "null",
readings: {
$push: "$readings.timestamp"
}
}
}
];
我的查询:
{
"readings":["1234","1234","12"]
}
[
{
$group: {
_id: "null",
readings: {
$push: "$readings.timestamp"
}
}
}
];
但是它不允许重复键。
读数
是一个数组,当您分组时,您将得到数组数组。如果您展平读数
字段并将其分组,您将得到所需的结果
试试这个:
db.collection.aggregate([
{
$unwind: "$readings"
},
{
$group: {
_id: "null",
readings: {
$push: "$readings.timestamp"
}
}
}
])
这里应该没有任何问题,检查一下::(),还有这个字段是什么
macid
?这在mongo 4.2中不起作用。macid是打字错误IM使用mongo 4.2和c#driver 2.6.1会出现什么错误?由于您已更改为“\u id:“null”`那么它将迭代您的所有文档,因此您的预期结果也将相应更改,结果将具有\u id:null
。无错误。此查询不允许重复条目,这意味着[“1234”,“12”]只获取一个“1234”值。我想要两个值