Mongodb 如何将对象推入列表字段
如果我有两份文件,比如:Mongodb 如何将对象推入列表字段,mongodb,aggregation-framework,Mongodb,Aggregation Framework,如果我有两份文件,比如: {'book': {'title': 'first'}, 'owner': {'name': 'Jim'}}, {'book': {'title': 'second'}, 'owner': {'name': 'Bob'}} 我想把“书”的内容分为一个单独的列表,然后是所有者,这样看起来像: { 'books': [{'book': {'title': 'second'}, {'book': {'title': 'first'}}], 'owners': [{'
{'book': {'title': 'first'}, 'owner': {'name': 'Jim'}},
{'book': {'title': 'second'}, 'owner': {'name': 'Bob'}}
我想把“书”的内容分为一个单独的列表,然后是所有者,这样看起来像:
{
'books': [{'book': {'title': 'second'}, {'book': {'title': 'first'}}],
'owners': [{'owner': {'name': 'Jim'}}, {'owner': {'name': 'Bob'}}]
}
我如何组织mongo管道来分别对这些进行分组?您可以通过在集合中运行聚合管道来完成
$group
通过null
执行
db.col_name.aggregate([
{"$group":{"_id":null,
"books": { "$push": {"book":"$book" }},
"owners": { "$push": {"owner":"$owner" }}
}},
]);
您可以通过在集合中运行聚合管道来完成此操作
$group
通过null
执行
db.col_name.aggregate([
{"$group":{"_id":null,
"books": { "$push": {"book":"$book" }},
"owners": { "$push": {"owner":"$owner" }}
}},
]);
类似于
db.collectionname.aggregate([{“$group”:{“\u id”:null,“books”:{“$push”:{“book”:“$book”}}},“owners”:{“$push”:{“owner”:“$owner”}}}},])代码>类似于db.collectionname.aggregate([{“$group”:{“\u id”:null,“books”:{“$push”:{“book”:“$book”}},“owners”:{“$push”:{“owner”:“$owner”}}},])代码>