【发布时间】:2020-02-19 08:13:21
【问题描述】:
我有一个由 MongoDB 中的 find 命令返回的数据集。如何在给定数据中搜索 DeviceJson[] 的值和字段
{ location: [],
_id: 5d42d171e7ceef2a90245470,
farmName: 'Xilo',
description: 'This is test from Postman Api Request',
farmAddDate: 2019-08-01T11:48:01.883Z,
device:
[
{ _id: 5d441878f1877637cc712d07,
deviceName: 'Xki',
deviceType: 'Muc',
description:
'This is test for updation of specific data in a specfic farm .Test Pass',
deviceLocation: [Array],
Parameter: 'Hello Happy',
Topic: 'v1/Xki/11,180/Hello Happy' },
{ _id: 5d4418953968370e64c32e1f,
deviceName: 'Xki',
deviceType: 'Muc',
description:
'This is test for updation of specific data in a specfic farm .Test Pass',
deviceLocation: [Array],
Parameter: 'Hello Happy',
Topic: 'v1/Xki/11,180/Hello Happy' },
{ _id: 5d4425548b3cf92af46e2c9a,
deviceName: 'Xki',
deviceType: 'Muc',
description:
'This is test for updation of specific data in a specfic farm .Test Pass',
deviceLocation: [Array],
Parameter: 'Hello Happy 1',
Topic: 'sagita/5d42d171e7ceef2a90245470/Xki/11,180/Hello Happy 1' },
{ _id: 5d44256d8b3cf92af46e2c9b,
deviceName: ' DeviceX01',
deviceType: ' Test',
description: ' This is a test',
deviceLocation: '11.22,33.12',
Parameter: ' set',
Topic:
'sagita/5d42d171e7ceef2a90245470/ DeviceX01/11.22,33.12/ set',
DeviceJson: [Array] }
]
}
我保存在一个名为 usdData=[] 的数组中的数据集并循环通过它的索引,这是结果,我甚至想在架构中搜索内部和 DeviceJson 的值。我该怎么做?
var usdData=[];
collection.findOne({"email":Username},function (err,doc) {
if (err) throw err;
usdData=doc.farm;
for (let index = 0; index < usdData.length; index++) {
if (usdData[index].farmName === gotfarmName) {
return usdData[index];
}
const element = usdData[index];
// const dElement = JSON.stringify(element);
// console.log("Array started here \n"+dElement);
// const ddElement= JSON.parse(dElement) ;
console.log(usdData[1]);
}
return console.log();
});
【问题讨论】:
-
在这种情况下 $unwind 会有帮助吗? @saintlyzero,我的架构类似于 user->farm[{device [ { } ] }]。这篇文章让我很困惑:stackoverflow.com/questions/11189243/…
标签: arrays node.js json object mongodb-query