Я относительно новичок в mongoose и nodejs. И я пытаюсь взломать быстрый скрипт на стороне сервера в nodejs.MongoDb выбирает объекты из массива, где свойство объекта соответствует coondition
Я пытаюсь получить данные в виде массива объектов из mongoDb, используя mongoose.
Вот что моя схема выглядит -
var heatmapSchema = new Schema({
vuid: String
coordinates: [
{
x: Number,
y: Number,
c: Number,
timestamp: Number
}
]
}, {collection: collectionName});
Как вы можете видеть coordinates
массив объектов. Я хочу, чтобы запросить MongoDB так что я получаю массив этих координат объектов, где c = 1
(c
недвижимость в coordinate
равен 1), то есть -
[
{
x: 100,
y: 230,
c: 1,
timestamp: 1233312312
},
{
x: 120,
y: 240,
c: 1,
t: 1233313425
}
......
]
Что бы лучшим способом для достижения этой цели в мангуста?
UPDATE
Ближайший я получил до сих пор использует ниже запрос -
heatmapModel.aggregate(
[
{
$unwind: '$coordinates'
},
{
$match: {
'coordinates.c': 1
}
},
{
$project: {
'_id': 0,
'coordinates.x': 1,
'coordinates.y': 1,
'coordinates.c': 1,
'coordinates.timestamp': 1
}
}
],
function (err, result) {
if (err) {
console.log(err);
process.exit(1);
}
console.log(result);
process.exit();
}
);
Который дает мне следующий вывод -
[ { coordinates: { x: 601, y: 165, c: 1, timestamp: 1438840800424 } },
{ coordinates: { x: 484, y: 192, c: 1, timestamp: 1438840801211 } },
{ coordinates: { x: 484, y: 192, c: 1, timestamp: 1438840801388 } },
{ coordinates: { x: 414, y: 394, c: 1, timestamp: 1438840802378 } },
.....
]
Как избавиться ненужного ключа coordinates
в json?
Nope. Это не работает. Это была очевидная первая вещь, которую я пробовал, но результат содержит значения, которые имеют 'coord.c = 0', а также – ShalomSam
Не могли бы вы отправить нам, как вы делаете запрос? Это должно работать ... –
Я обновил свой вопрос. Но если у вас был вопрос, как я выполнил ваш вышеупомянутый запрос - heatmapModel.find ({"coord.c": 1}). Exec (function (err, data) { if (err) { console.log (err); process.exit (1); } process.exit(); }); – ShalomSam