Я пытаюсь использовать $setUnion
в агрегационном запросе, он отлично работает в консоли MongoDB, но когда я пытаюсь сделать то же самое в моем приложении Node с Mongoose, он терпит неудачу с этой ошибкой:
{
[MongoError: exception: invalid operator '$setUnion']
name: 'MongoError',
errmsg: 'exception: invalid operator \'$setUnion\'',
code: 15999,
ok: 0
}
Вот упрощенный запрос, который я попробовал, но все еще не удалось выполнить в приложении:
db.users.aggregate(
{
$match: { _id: ObjectId("52c9375c497ed763f41941bd") }
},
{
$project: {
activities: {
$setUnion: [[1,2], [3,4]]
}
}
}
);
Есть идеи, что я мог делать неправильно?
MongoDB: 2.6.6, Мангуст: 3.8.21, Узел: 0.10.26
Обновление: вот код Mongoose
var User = require('./providers/db').User,
mongoose = require('mongoose');
User.aggregate({
$match: { _id: mongoose.Types.ObjectId("52c9375c497ed763f41941bd") }
},
{
$project: {
activities: {
$setUnion: [[1,2], [3,4]]
}
}
}, function (err, result) {
if (err) { return console.log(err); }
else { console.log(result); }
});
{ "$setUnion": [[1,2], [3,4]] }
пример не дал ничего положительного по сравнению с проверкой документов и только[ 1, 4, 3 ,2 ]
в результате. Вы допустили ошибку кодирования. Ищите и исправляйте. Это работает. - person Neil Lunn   schedule 13.01.2015