Hướng dẫn how do i count the number of elements in an array in mongodb? - làm cách nào để đếm số phần tử trong một mảng trong mongodb?

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

$sizeCounts và trả về tổng số mục trong một mảng.
Hướng dẫn how do i count the number of elements in an array in mongodb? - làm cách nào để đếm số phần tử trong một mảng trong mongodb?

Counts and returns the total number of items in an array.

$size có cú pháp sau: has the following syntax:

Đối số cho $size có thể là bất kỳ biểu thức nào miễn là nó giải quyết thành một mảng. Để biết thêm thông tin về biểu thức, xem biểu thức.$size can be any expression as long as it resolves to an array. For more information on expressions, see Expressions.

Đối số cho $size phải giải quyết cho một mảng. Nếu đối số cho $size bị thiếu hoặc không giải quyết được một mảng, $size lỗi.$size must resolve to an array. If the argument for $size is missing or does not resolve to an array, $size errors.

Xem xét bộ sưu tập

db.inventory.aggregate([
{
$project: {
item: 1,
numberOfColors: { $cond: { if: { $isArray: "$colors" }, then: { $size: "$colors" }, else: "NA"} }
}
}
] )
3 với các tài liệu sau:

{ "_id" : 1, "item" : "ABC1", "description" : "product 1", colors: [ "blue", "black", "red" ] }
{ "_id" : 2, "item" : "ABC2", "description" : "product 2", colors: [ "purple" ] }
{ "_id" : 3, "item" : "XYZ1", "description" : "product 3", colors: [ ] }
{ "_id" : 4, "item" : "ZZZ1", "description" : "product 4 - missing colors" }
{ "_id" : 5, "item" : "ZZZ2", "description" : "product 5 - colors is string", colors: "blue,red" }

Hoạt động đường ống tổng hợp sau đây sử dụng toán tử $size để trả về số lượng phần tử trong mảng

db.inventory.aggregate([
{
$project: {
item: 1,
numberOfColors: { $cond: { if: { $isArray: "$colors" }, then: { $size: "$colors" }, else: "NA"} }
}
}
] )
5:$size operator to return the number of elements in the
db.inventory.aggregate([
{
$project: {
item: 1,
numberOfColors: { $cond: { if: { $isArray: "$colors" }, then: { $size: "$colors" }, else: "NA"} }
}
}
] )
5 array:

db.inventory.aggregate([
{
$project: {
item: 1,
numberOfColors: { $cond: { if: { $isArray: "$colors" }, then: { $size: "$colors" }, else: "NA"} }
}
}
] )

Hoạt động trả về như sau:

{ "_id" : 1, "item" : "ABC1", "numberOfColors" : 3 }
{ "_id" : 2, "item" : "ABC2", "numberOfColors" : 1 }
{ "_id" : 3, "item" : "XYZ1", "numberOfColors" : 0 }
{ "_id" : 4, "item" : "ZZZ1", "numberOfColors" : "NA" }
{ "_id" : 5, "item" : "ZZZ2", "numberOfColors" : "NA" }

Tôi có một bộ sưu tập trong đó mọi tài liệu trong bộ sưu tập đều có một mảng có tên

db.inventory.aggregate([
{
$project: {
item: 1,
numberOfColors: { $cond: { if: { $isArray: "$colors" }, then: { $size: "$colors" }, else: "NA"} }
}
}
] )
6 chứa một tập hợp các tài liệu nhúng. Hiện tại có một cách tầm thường trong vỏ MongoDB để đếm xem có bao nhiêu trường hợp trong
db.inventory.aggregate([
{
$project: {
item: 1,
numberOfColors: { $cond: { if: { $isArray: "$colors" }, then: { $size: "$colors" }, else: "NA"} }
}
}
] )
6? cái gì đó như:

db.inventory.aggregate([
{
$project: {
item: 1,
numberOfColors: { $cond: { if: { $isArray: "$colors" }, then: { $size: "$colors" }, else: "NA"} }
}
}
] )
8 hay
db.inventory.aggregate([
{
$project: {
item: 1,
numberOfColors: { $cond: { if: { $isArray: "$colors" }, then: { $size: "$colors" }, else: "NA"} }
}
}
] )
9?

Mỗi tài liệu trong mảng cần phải có một

{ "_id" : 1, "item" : "ABC1", "numberOfColors" : 3 }
{ "_id" : 2, "item" : "ABC2", "numberOfColors" : 1 }
{ "_id" : 3, "item" : "XYZ1", "numberOfColors" : 0 }
{ "_id" : 4, "item" : "ZZZ1", "numberOfColors" : "NA" }
{ "_id" : 5, "item" : "ZZZ2", "numberOfColors" : "NA" }
0 duy nhất và tôi muốn tính toán nhanh để đảm bảo rằng số lượng phần tử phù hợp nằm trong một mảng cho một tài liệu ngẫu nhiên trong bộ sưu tập.

Đã hỏi ngày 27 tháng 1 năm 2014 lúc 17:49Jan 27, 2014 at 17:49

Randombitsrandombitsrandombits

45,6K74 Huy hiệu vàng246 Huy hiệu bạc421 Huy hiệu Đồng74 gold badges246 silver badges421 bronze badges

Trong MongoDB 2.6, khung tổng hợp có toán tử $size mới mà bạn có thể sử dụng:

> db.mycollection.insert({'foo':[1,2,3,4]})
> db.mycollection.insert({'foo':[5,6,7]})

> db.mycollection.aggregate([{$project: { count: { $size:"$foo" }}}])
{ "_id" : ObjectId("5314b5c360477752b449eedf"), "count" : 4 }
{ "_id" : ObjectId("5314b5c860477752b449eee0"), "count" : 3 }

Đã trả lời ngày 3 tháng 3 năm 2014 lúc 17:05Mar 3, 2014 at 17:05

Hướng dẫn how do i count the number of elements in an array in mongodb? - làm cách nào để đếm số phần tử trong một mảng trong mongodb?

10

Nếu bạn đang ở phiên bản gần đây của Mongo (2.2 trở lên), bạn có thể sử dụng khung tổng hợp.

db.mycollection.aggregate([
  {$unwind: '$foo'},
  {$group: {_id: '$_id', 'sum': { $sum: 1}}},
  {$group: {_id: null, total_sum: {'$sum': '$sum'}}}
])

Điều này sẽ cung cấp cho bạn tổng số

db.inventory.aggregate([
{
$project: {
item: 1,
numberOfColors: { $cond: { if: { $isArray: "$colors" }, then: { $size: "$colors" }, else: "NA"} }
}
}
] )
6 của bộ sưu tập của bạn.

Bỏ qua

{ "_id" : 1, "item" : "ABC1", "numberOfColors" : 3 }
{ "_id" : 2, "item" : "ABC2", "numberOfColors" : 1 }
{ "_id" : 3, "item" : "XYZ1", "numberOfColors" : 0 }
{ "_id" : 4, "item" : "ZZZ1", "numberOfColors" : "NA" }
{ "_id" : 5, "item" : "ZZZ2", "numberOfColors" : "NA" }
3 cuối cùng sẽ tổng hợp kết quả cho mỗi bản ghi.

Đã trả lời ngày 27 tháng 1 năm 2014 lúc 18:07Jan 27, 2014 at 18:07

Hướng dẫn how do i count the number of elements in an array in mongodb? - làm cách nào để đếm số phần tử trong một mảng trong mongodb?

Xlembourasxlembourasxlembouras

8.1264 Huy hiệu vàng35 Huy hiệu bạc40 Huy hiệu đồng4 gold badges35 silver badges40 bronze badges

1

Sử dụng các dự đoán và nhóm

db.mycollection.aggregate(
    [
        {
            $project: {
                _id:0,
                foo_count:{$size:"$foo"},
            }
        }, 
        {
            $group: {
                foo_total:{$sum:"$foo_count"},
            }
        }
    ]
)

Số lượng mảng trẻ em cũng có thể được tính toán theo cách này

db.mycollection.aggregate(
    [
        {
            $project: {
                _id:0,
                foo1_count:{$size:"$foo1"},
                foo2_count:{$size:"$foo2"},
            }
        }, 
        {
            $group: {
                foo1_total:{$sum:"$foo1_count"},
                foo2_total:{$sum:"$foo2_count"},
            }
        }
    ]
)

Đã trả lời ngày 6 tháng 10 năm 2020 lúc 9:24Oct 6, 2020 at 9:24

1

Làm cách nào để đếm số lượng vật phẩm trong một mảng trong MongoDB?

đếm () hoặc db.mycollection. mycollection.

Làm cách nào để đếm dữ liệu trong MongoDB?

Phương thức đếm () của MongoDB - db.Collection.Count () Phương thức đếm () Đếm số lượng tài liệu phù hợp với tiêu chí lựa chọn.db. Collection. count() The count() method counts the number of documents that match the selection criteria.

Chúng ta có thể sử dụng đếm với chức năng tổng hợp trong MongoDB không?

Tập hợp Count MongoDB $ Các nhà điều hành Count MongoDB $ cho phép chúng tôi chuyển một tài liệu cho giai đoạn tiếp theo của đường ống tổng hợp có chứa số lượng tài liệu.Có một vài điều quan trọng cần lưu ý về cú pháp này: Đầu tiên, chúng tôi gọi toán tử đếm $ và sau đó chỉ định chuỗi.The MongoDB $count operator allows us to pass a document to the next phase of the aggregation pipeline that contains a count of the documents. There a couple of important things to note about this syntax: First, we invoke the $count operator and then specify the string.

Làm cách nào để lọc một mảng trong MongoDB?

Bộ lọc phần tử mảng MongoDB bằng toán tử $ Filter Toán tử này sử dụng ba biến: Đầu vào - Điều này thể hiện mảng mà chúng tôi muốn trích xuất.Cond - Điều này đại diện cho tập hợp các điều kiện phải được đáp ứng.AS - Trường tùy chọn này chứa một tên cho biến đại diện cho từng phần tử của mảng đầu vào.Using $Filter Operator This operator uses three variables: input – This represents the array that we want to extract. cond – This represents the set of conditions that must be met. as – This optional field contains a name for the variable that represent each element of the input array.