Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在Mongodb中寻找显示object对象的另一种方式_Database_Mongodb - Fatal编程技术网

Database 在Mongodb中寻找显示object对象的另一种方式

Database 在Mongodb中寻找显示object对象的另一种方式,database,mongodb,Database,Mongodb,我有如下数据: [ { '_id': ObjectId('589ba2fb2742a35b47dad21c'), 'name': 'Iphone7', 'price': 14500, 'category': 'Phone', 'vendor': 'Apple', 'stock': [ 10, 40, ], 'qua

我有如下数据:

[
    {
        '_id': ObjectId('589ba2fb2742a35b47dad21c'),
        'name': 'Iphone7',
        'price': 14500,
        'category': 'Phone',
        'vendor': 'Apple',
        'stock': [
            10,
            40,
        ],
        'quantity': 10,
    },
    {
        '_id': ObjectId('589ba2fb2742a35b47dad21d'),
        'name': 'Samaung TV',
        'price': 6500,
        'category': 'TV',
        'vendor': {
            'name': 'Samaung',
            'phone': '01061202200',
        },
        'stock': [
            5,
            70,
            80,
            34,
        ],
        'quantity': 5,
    },
];
我可以得到第二个“供应商”,其中包含如下电话:
db.products.find({“vendor.phone”:{“$exists”:true}).pretty()


我正在寻找任何其他方法,只获取包含“phone”值的供应商。我是刚到mongo的。提前谢谢。

我认为,
$exists
是最好的。但是,在某些情况下,如果您坚持不这样做,您可以仅查找
vendor.phone
属于特定类型的文档

假设所有电话号码都是字符串类型,则可以使用此查询:

db.collection.find({
  "vendor.phone": {
    $type: 2
  }
})
如果
vendor.phone
可以是多种类型,则必须使用
$或
查询覆盖所有这些类型,如下所示:(在本例中,类型1和2表示数字和字符串)


您究竟为什么要寻找替代方案?这一次失败了什么?这只是在我参加的课程中测试我们的一种方式。我来这里之前找过,但什么也没找到。@菲利佩·梅克尔谢谢@汤姆·斯拉伯特
db.collection.find({
  $or: [
    {
      "vendor.phone": {
        $type: 1
      }
    },
    {
      "vendor.phone": {
        $type: 2
      }
    }
  ]
})