Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何将对象推入列表字段_Mongodb_Aggregation Framework - Fatal编程技术网

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”}}},])