繁体   English   中英

从两个集合中选择数据mongodb

[英]select data from two collections mongodb

我们有两台服务器在运行,并且某些数据丢失了,因此我需要检查到底是什么丢失并进行修复。 订单的数据如下所示:

 {
        "_id" : ObjectId("591a067bd7bc153c9bd4b5c2"),
        "customer" : "cus_AeMs19HKhEZDY7",
        "paymentID" : "ch_1AFb9pEz37oqk2rHVkbAfNrU",
        "paymentStatus" : "PAID",
        "user" : "melaniecarr23@gmail.com",
        "createdOn" : ISODate("2017-05-15T19:50:19.775Z"),
        "cart" : {
                "username" : "melaniecarr23@gmail.com",
                "totalQty" : 1,
                "totalPrice" : 50,
                "items" : [
                        {
                                "players" : [
                                        {
                                                "country" : "jlk",
                                                "zip" : "jkl",
                                                "state" : "jkl",
                                                "city" : "jkl",
                                                "address" : "jkl",
                                                "phone" : "432",
                                                "email" : "drmelaniecarr@gmail.com",
                                                "last" : "Snape",
                                                "first" : "Severus"
                                        },
                                        {
                                                "adult" : null,
                                                "country" : "jlk",
                                                "zip" : "jlk",
                                                "state" : "jkl",
                                                "city" : "jkl",
                                                "address" : "jkl",
                                                "phone" : "432",
                                                "email" : "melaniecarr23@gmail.com",
                                                "last" : "Potter",
                                                "first" : "Harry"
                                        }
                                ],
                                "price" : 50,
                                "numplayers" : 2,
                                "group" : "nonpro",
                                "level" : "12s",
                                "division" : "Junior Boys",
                                "field" : "Main",
                                "day" : "Friday",
                                "event" : "Junior Boys 12s",
                                "id" : "58d89697ffc0346230a43a8d"
                        }
                ]
        },
        "__v" : 0
}

对于每个cart.item,注册集合中都有一个文档,如下所示:

{
    "_id" : ObjectId("590aa7a13c85042478800c52"),
    "event" : "Women's B",
    "paymentId" : "ch_1AFb9pEz37oqk2rHVkbAfNrU",
    "createdOn" : ISODate("2017-05-13T06:24:07.609Z"),
    "paymentID" : "VOLUNTEER",
    "paymentStatus" : "PAID",
    "__v" : 1

}

我需要对orders.cart.items数组中的项目进行计数,并查看它们是否匹配来自paymentId与订单中相同的注册结果的数量。 如果它们不相同,我需要查看那些结果。

有人可以帮助我了解如何使用mongo吗?

我真的想通了! 我必须在聚合管道中使用$ lookup:

Order
  .aggregate([     
    {       $lookup:         
    {           from: "registrations",
                localField: "paymentID",           
                foreignField: "paymentId",           
                as: "REGISTRATIONS"         
    }    
    } 
  ]);

这使我可以使用ng-repeat和ng-if来显示cart.items和REGISTRATIONS数组的长度并进行比较。 如果它们不同,则显示每个内容。 正是我要找的东西,而且速度很快! 要爱聚集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM