蒙戈版本:3.2.8
蒙戈發現功能不匹配
我的樣品JSON是如下
我的查詢來獲取name
等於apple
不起作用。
db.collection.find({ "products.foods.name": "apple" })
取而代之的是取所有的記錄,奇怪嗎?
$ eq,$ lt或$ gt都不起作用。他們的結果與整個數據。
db.aggregation.find({ "products.foods.min_price": {$eq:10} })
在此先感謝。
蒙戈版本:3.2.8
蒙戈發現功能不匹配
我的樣品JSON是如下
我的查詢來獲取name
等於apple
不起作用。
db.collection.find({ "products.foods.name": "apple" })
取而代之的是取所有的記錄,奇怪嗎?
$ eq,$ lt或$ gt都不起作用。他們的結果與整個數據。
db.aggregation.find({ "products.foods.min_price": {$eq:10} })
在此先感謝。
的解決方案是爲n $unwind
兩個陣列。
db.foods.aggregate([
{ $unwind : "$products" },
{ $unwind : "$products.foods" },
{ $match : { "products.foods.min_price": 10 }}
])
試試這個:
db.test.aggregate([
{$match: {'products.foods.name': 'apple'}}])
從Retrieve only the queried element in an object array in MongoDB collection
兩者可以嘗試從該職位其他例子。
嘗試使用此:db.Exercise.aggregate([ {$match: {'products.foods.min_price': 10}}])
正如其他人已經告訴你的那樣,匹配文檔的一部分將返回完整的文檔,除非您採取像使用聚合框架這樣的特殊措施。但是,由於您似乎將食品條目視爲單個記錄,並希望它們能夠單獨從該查詢中返回,我的猜測是您對mongo中的文檔有一個相當根本的誤解。您發佈的JSON看起來像是一個文檔來保存它的所有內容,大約等於將關係數據庫中的所有數據都寫入單行。考慮每個條目的食物和個人文檔的單獨收集。 – mtj