MongoDB查询问题请教

 淘宝杂谈网z 发布于 2022-10-27 23:38

在写查询的时候,感觉目前的数据结构中包含一个数组,而我现在要从这个数组中去匹配,然后把这个数组返回给客户端。
过滤出订单中包含有我们店菜品的那些订单

{
    "_id" : "xSrtZDCqJHNbAXGPe",
    "type" : "takeaway",
    "state" : "new",
    "customer" : {
        "openId" : "oFTzvsxQNk6pYeTwTsZ-mkUGTMVM",
        "name" : "张灏哲",
        "mobile" : "13354261882",
        "campus" : "北华大学东校区",
        "building" : "第一教学楼A区",
        "room" : "301"
    },
    "items" : [ 
        {
            "_id" : "HEFFXf4SrpoSwm2ng",
            "name" : "酱香猪排饭",
            "unit" : "份",
            "price" : 10,
            "vendor" : "王记美食",
            "image" : "QjTbqCq89Gb43ER2C",
            "imageSUrl" : "/cfs/files/takeaway/QjTbqCq89Gb43ER2C/6YWx6aaZ54yq5o6S6aWt.jpg?token=eyJhdXRoVG9rZW4iOiJ6WlNQVEZiVnpRVmdSQUVhbnlPQVBDaDRfX0I4RDRjUTI4X3ZhdTdnZjJRIn0%3D&store=takeaway-s",
            "imageMUrl" : "/cfs/files/takeaway/QjTbqCq89Gb43ER2C/6YWx6aaZ54yq5o6S6aWt.jpg?token=eyJhdXRoVG9rZW4iOiJ6WlNQVEZiVnpRVmdSQUVhbnlPQVBDaDRfX0I4RDRjUTI4X3ZhdTdnZjJRIn0%3D&store=takeaway-m",
            "imageLUrl" : "/cfs/files/takeaway/QjTbqCq89Gb43ER2C/6YWx6aaZ54yq5o6S6aWt.jpg?token=eyJhdXRoVG9rZW4iOiJ6WlNQVEZiVnpRVmdSQUVhbnlPQVBDaDRfX0I4RDRjUTI4X3ZhdTdnZjJRIn0%3D&store=takeaway-l",
            "amount" : 1
        }, 
        {
            "_id" : "3WRCcJ68iPWsstqG4",
            "name" : "酱香卤肉饭",
            "unit" : "份",
            "price" : 10,
            "vendor" : "王记美食",
            "image" : "bqnnFyTM6u6J2Qnjo",
            "imageSUrl" : "/cfs/files/takeaway/bqnnFyTM6u6J2Qnjo/6YWx6aaZ5Y2k6IKJ6aWt.jpg?token=eyJhdXRoVG9rZW4iOiJ6WlNQVEZiVnpRVmdSQUVhbnlPQVBDaDRfX0I4RDRjUTI4X3ZhdTdnZjJRIn0%3D&store=takeaway-s",
            "imageMUrl" : "/cfs/files/takeaway/bqnnFyTM6u6J2Qnjo/6YWx6aaZ5Y2k6IKJ6aWt.jpg?token=eyJhdXRoVG9rZW4iOiJ6WlNQVEZiVnpRVmdSQUVhbnlPQVBDaDRfX0I4RDRjUTI4X3ZhdTdnZjJRIn0%3D&store=takeaway-m",
            "imageLUrl" : "/cfs/files/takeaway/bqnnFyTM6u6J2Qnjo/6YWx6aaZ5Y2k6IKJ6aWt.jpg?token=eyJhdXRoVG9rZW4iOiJ6WlNQVEZiVnpRVmdSQUVhbnlPQVBDaDRfX0I4RDRjUTI4X3ZhdTdnZjJRIn0%3D&store=takeaway-l",
            "amount" : 2
        }, 
        {
            "_id" : "w4BNrrM8aWoTR2fqd",
            "name" : "板烧梅肉饭",
            "unit" : "份",
            "price" : 10,
            "vendor" : "王记美食",
            "image" : "FqTTadroGpcieaERZ",
            "imageSUrl" : "/cfs/files/takeaway/FqTTadroGpcieaERZ/5p2_54On5qKF6IKJ6aWt.jpg?token=eyJhdXRoVG9rZW4iOiJ6WlNQVEZiVnpRVmdSQUVhbnlPQVBDaDRfX0I4RDRjUTI4X3ZhdTdnZjJRIn0%3D&store=takeaway-s",
            "imageMUrl" : "/cfs/files/takeaway/FqTTadroGpcieaERZ/5p2_54On5qKF6IKJ6aWt.jpg?token=eyJhdXRoVG9rZW4iOiJ6WlNQVEZiVnpRVmdSQUVhbnlPQVBDaDRfX0I4RDRjUTI4X3ZhdTdnZjJRIn0%3D&store=takeaway-m",
            "imageLUrl" : "/cfs/files/takeaway/FqTTadroGpcieaERZ/5p2_54On5qKF6IKJ6aWt.jpg?token=eyJhdXRoVG9rZW4iOiJ6WlNQVEZiVnpRVmdSQUVhbnlPQVBDaDRfX0I4RDRjUTI4X3ZhdTdnZjJRIn0%3D&store=takeaway-l",
            "amount" : 1
        }
    ],
    "orderNo" : 3,
    "orderTime" : "2016-03-23 04:10:45"
}

我要从items这个数组中去匹配vendor,将匹配成功的vendor返回给对呀的商户,比如我匹配`vendor === '王记美食'那么,匹配成功的话,则将这个order返回给商家的客户端,商家可以看到他们卖了什么。

求大神们给个思路,sql用的不精。

我是在meteor中publish的

1 个回答
  • Meteor.publish('orders', function() {
      return db.yourTable.find({ 'items.vendor': '王记美食' }, { 'items': { $elemMatch: { vendor: '王记美食' } });
    });
    2022-10-29 07:56 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有