Я пытаюсь использовать $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, Mongoose: 3.8.21, Node: 0.10.26
Update: Вот код 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] '. Вы сделали ошибку кодирования. Ищите его и исправьте. Это работает. –