如何通过嵌套值MongoDB获取元素



在文档中,我编写了一个类别对象,其中有一个包含类别名称、成本和日期的字段。我需要参加今年的某些类别";2022";。我该怎么做?现在在我的代码中,控制台显示";[]";我需要显示年份为2022的类别名称。现在我添加了三个对象,其中两个对象的年份为2022年。我需要在控制台中显示它们。在控制台中,带有用户的整个对象如下所示:名称:"Tom","categories":[[Array],[Array],[Array]]。

const col = db.collection("users");
col.findOneAndUpdate({
name: "Tom",
}, {
$addToSet: {
сategories: [{
name: "products",
cost: "100$",
date: {
day: `13`,
month: `08`,
year: `2022`,
},
}, ],
},
// search 
collection
.find({
year: `2022`,
})
.toArray(function(err, results) {
console.log(results);
client.close();
});

你好,里克,欢迎光临。虽然我已经有一段时间没有使用Mongo了,但根据您的问题,这似乎是一个数组访问问题。如果您正在获得控制台日志结果"Tom’,‘categories’:[[Array],[Array],[Array]]"

然后用这样的东西穿过它?下面我举了两个例子让你试试。

const col = [ ["david", "lopan"], ["McDonalds", "BurgerKing"] ];
console.log(col[0][0]); //this outputs "David"
console.log(col[1][0]); //this outputs "McDonalds"

等等。

或者尝试

const dataset2 = [ {name1: "david", lastname1:"lopan"}, {food:"McDonalds", food2:"BurgerKing"}];
console.log(dataset2[0].name1); // this outputs "David"

从本质上讲,您需要遍历数组并针对其中的数据类型,但您必须深入到几个级别。你就快到了

最新更新