gpt4 book ai didi

mongodb - 按匹配的子文档排序

转载 作者:可可西里 更新时间:2023-11-01 09:52:35 25 4
gpt4 key购买 nike

假设我有一个包含如下文档的集合:

{
"_id": ObjectId("507f191e810c19729de860ea"),
"users": [{
"userId": ObjectId("507f1f77bcf86cd799439011"),
"deleted": false,
"updatedAt" ISODate("2013-10-17T20:46:22Z")
}, {
"userId": ObjectId("507f1f71baf40ea8438490fa"),
"deleted": false,
"updatedAt" ISODate("2013-10-17T22:19:10Z")
}]
}

现在,假设我正在查询一个文档,该文档有一个包含特定 userId 的“用户”子文档,该子文档未被删除 - 因此,查询如下所示:

{"users.userId": ObjectId("507f1f77bcf86cd799439011"), "users.deleted": false}

然后是否可以根据行中匹配的子文档的 updatedAt 属性对返回的结果集进行排序?如果没有,是否有更合适的设置方法?我是否应该只创建另一个我当前嵌入到 users 键中的集合,然后让它引用父文档?

最佳答案

是的,这是可能的。你可以试试这个:

 db.collection.aggregate([
{$unwind:"$users"},
{$match:{"users.userId":"ObjectId("507f1f77bcf86cd799439011")","users.deleted":false}},
{$sort:{"users.updatedAt":1}}])

此处的“收藏”将替换为您的收藏名称。

关于mongodb - 按匹配的子文档排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19352416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com