$lookup 不适用于 Node.js 中的 $match

索拉布·夏尔马

我想根据用户提供的特定匹配 id 连接来自两个集合的文档。

用户集合的结构如下:

{
  "_id" : ObjectId("58946773ab022b192814b586"), 
  "name" : "Josef Rakicj", 
  "uId" : "1485936031178", 
  "email" : "[email protected]", 
  "type" : "Dealer", 
  "__v" : 0
}

广告集合的结构如下:

{
  "_id" : ObjectId("58bfe1a6e809982168458a5e"), 
  "adId" : "1488970150316", 
  "uId" : "1485936031178",
  "title" : "Sorry, free.facebook.com isn't available in your country right now", 
  "type" : "0",
  "__v" : 0
}

因此,我尝试使用以下代码$lookup通过 perform 在两个集合中执行$match

 router.get('/ad-details/:adId', function(req,res,next){ 
    var paramid=JSON.stringify(req.params.adId); 
    Adpost.aggregate(
      {$match:{adId:paramid}},
      { $lookup: 
        {
          from: "users",
          localField: "uId", 
          foreignField: "uId", 
          as: "postby "
        }
      },function(err,data){
        if(err){res.json(err)}
            else{
                res.json(data)
                console.log(data)
            }
    })
 });  

以上聚合在Mongo Shell. 但是当我在 Node.js 中应用这个查询时,它不起作用并发送空数据。

请让我知道究竟是什么错误。

瓦巴夫·帕蒂尔

聚合查询必须是一个数组,只需将您的查询放入一个数组中

 router.get('/ad-details/:adId', function(req,res,next){ 
    Adpost.aggregate([{$match:{adId:req.params.adId}},{ $lookup: { from: "users",localField: "uId", foreignField: "uId", as: "postby "}}],function(err,data){
        if(err){res.json(err)}
            else{
                res.json(data)
                console.log(data)
            }
    })
 }); 

而且您不需要对请求参数进行分类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

模拟请求对象不适用于node.js中的测试

来自分类Dev

reslover函数不适用于Node.js中的Promise对象

来自分类Dev

clearTimeout 不适用于 Node.js 中对象数组内的超时

来自分类Dev

Node.js Express渲染不适用于EJS

来自分类Dev

文件下载不适用于Node.js gridfs

来自分类Dev

Jade 语法不适用于 pug : Node Js

来自分类Dev

POST 不适用于 Node.JS 和 Express

来自分类Dev

sql 查询不适用于 node.js mysql 但适用于终端

来自分类Dev

适用于Node.js的MySQL库中的错误

来自分类Dev

适用于Node.js的MySQL库中的错误

来自分类Dev

Node.js API-适用于Postman,但不适用于Angular.js

来自分类Dev

IntelliSense 不适用于 VS 2015 中 Node.js 解决方案中 Public 文件夹中的文件

来自分类Dev

Google Elevation呼叫适用于浏览器,但不适用于node.js

来自分类Dev

正则表达式适用于浏览器,但不适用于Node.js

来自分类Dev

Mongodb $ lookup不适用于_id

来自分类Dev

$lookup 不适用于以 $ 开头的字段

来自分类Dev

唯一不适用于Node.js Sails.js“ sails-mysql”

来自分类Dev

match_parent不适用于SherlockFragment中的listView的layout_height

来自分类Dev

websocket与http模块一起使用,但不适用于express(node.js)

来自分类Dev

Nginx X-Accel-Redirect不适用于node.js

来自分类Dev

Node.js解密不适用于其他密码的密文

来自分类Dev

.env process.env不适用于使用Node.js示例的DocuSign docusignAPI

来自分类Dev

使用TypeScript的Visual Studio代码断点不适用于Node.js

来自分类Dev

Node.js-读取CSV文件不适用于行号> 500

来自分类Dev

Nginx X-Accel-Redirect不适用于node.js

来自分类Dev

Cloudinary上载“覆盖”选项不适用于Node.js

来自分类Dev

Node.js核心模块fs不适用于webpack和angular2 cli

来自分类Dev

socket.io不适用于静态文件路由node.js

来自分类Dev

Selenium 发送键不适用于 ENTER 键(Node js)

Related 相关文章

  1. 1

    模拟请求对象不适用于node.js中的测试

  2. 2

    reslover函数不适用于Node.js中的Promise对象

  3. 3

    clearTimeout 不适用于 Node.js 中对象数组内的超时

  4. 4

    Node.js Express渲染不适用于EJS

  5. 5

    文件下载不适用于Node.js gridfs

  6. 6

    Jade 语法不适用于 pug : Node Js

  7. 7

    POST 不适用于 Node.JS 和 Express

  8. 8

    sql 查询不适用于 node.js mysql 但适用于终端

  9. 9

    适用于Node.js的MySQL库中的错误

  10. 10

    适用于Node.js的MySQL库中的错误

  11. 11

    Node.js API-适用于Postman,但不适用于Angular.js

  12. 12

    IntelliSense 不适用于 VS 2015 中 Node.js 解决方案中 Public 文件夹中的文件

  13. 13

    Google Elevation呼叫适用于浏览器,但不适用于node.js

  14. 14

    正则表达式适用于浏览器,但不适用于Node.js

  15. 15

    Mongodb $ lookup不适用于_id

  16. 16

    $lookup 不适用于以 $ 开头的字段

  17. 17

    唯一不适用于Node.js Sails.js“ sails-mysql”

  18. 18

    match_parent不适用于SherlockFragment中的listView的layout_height

  19. 19

    websocket与http模块一起使用,但不适用于express(node.js)

  20. 20

    Nginx X-Accel-Redirect不适用于node.js

  21. 21

    Node.js解密不适用于其他密码的密文

  22. 22

    .env process.env不适用于使用Node.js示例的DocuSign docusignAPI

  23. 23

    使用TypeScript的Visual Studio代码断点不适用于Node.js

  24. 24

    Node.js-读取CSV文件不适用于行号> 500

  25. 25

    Nginx X-Accel-Redirect不适用于node.js

  26. 26

    Cloudinary上载“覆盖”选项不适用于Node.js

  27. 27

    Node.js核心模块fs不适用于webpack和angular2 cli

  28. 28

    socket.io不适用于静态文件路由node.js

  29. 29

    Selenium 发送键不适用于 ENTER 键(Node js)

热门标签

归档