使用MongoDB聚合函数找不到正确的值

时间:2019-09-11 11:20:14

标签: node.js mongodb aggregate

我需要使用MongoDB聚合函数根据某些用户输入获取值,但是在我的情况下,我无法返回正确的值。这是我的代码:

var cname=req.body.cname;
var id=req.body.id;
Company.collection.aggregate([
        { $match:{$and:[{cname:cname},{_id:{$ne:id}}]}}

])

我需要通过比较cname值和_id不等于给定id来获取那些值。但是就我而言,用户输入id的值是在需要其他用户输入id文档的地方获取的。

2 个答案:

答案 0 :(得分:0)

您需要按如下所述更改查询:

Company.collection.aggregate([
        { $match:{$and:[{cname:cname},{$ne:{_id:id}}]}}

]);

看看是否有帮助!

答案 1 :(得分:0)

您可以尝试以下代码。

const ObjectId = require('mongodb').ObjectId;

Company.collection.aggregate([
{$match : {$and: [{cname:cname},{$ne:{'_id':ObjectId(id)}}]}}
]);