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
}
}
]
})