給定文章集合中的以下 JSON:
[
{
_id: 1,
description: 'DESCRIPTION ARTICLE AB',
article_code: 'AB',
purchase: [
{ company: 1, cost: Decimal128("80.010000") },
{ company: 2, cost: Decimal128("85.820000") },
{ company: 3, cost: Decimal128("79.910000") }
],
stock: [
{ country: '01', warehouse: { code: '02', units: 10 } },
{ country: '02', warehouse: { code: '02', units: 8 } }
]
},
{
_id: 2,
description: 'DESCRIPTION ARTICLE AC',
article_code: 'AC',
purchase: [
{ company: 1, cost: Decimal128("90.010000") },
{ company: 2, cost: Decimal128("95.820000") },
{ company: 3, cost: Decimal128("89.910000") }
],
stock: [
{ country: '01', warehouse: { code: '01', units: 20 } },
{ country: '02', warehouse: { code: '02', units: 28 } }
]
}
]
我正在嘗試為 $slice 獲取正確的語法,但是這個命令:
db.articles.find({"stock.country": '01', "stock": {$slice: 1}})
產生此錯誤訊息:
MongoServerError:未知運算子:$slice
使用 $slice 僅獲取股票陣列的第一個元素的正確語法是什么?
uj5u.com熱心網友回復:
$slice是一個投影運算子(或聚合運算式,但在這種情況下我們不使用聚合管道)。
這意味著您需要在投影部分使用它,而不是命令的查詢部分。
db.collection.find(
<query>,
{ <arrayField>: { $slice: <number> } }
);
或專門為您:
db.collection.find({
"stock.country": "01"
},
{
stock: {
$slice: 1
}
})
蒙戈游樂場
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/344959.html
