Python 如何在Mongodb中进行连接我知道如何在SQL中进行连接

Python 如何在Mongodb中进行连接我知道如何在SQL中进行连接,python,mongodb,mongomapper,expert-system,database,Python,Mongodb,Mongomapper,Expert System,Database,如何在mongodb中加入2个集合 我在collection2中有一个字段FK\u ID,它引用了collection1 在SQL中,我经常这样做 SELECT * FROM collection1 c1 JOIN collection2 c2 on c2.FK_ID = c1.ID 这样行吗 db.collection1.join(collection2, {collection1.ID:collection2.FK_ID}) 还是围绕着这些线? 谢谢不,它坏了MongoDB不支持联接,一

如何在mongodb中加入2个集合

我在
collection2
中有一个字段
FK\u ID
,它引用了
collection1

在SQL中,我经常这样做

SELECT * FROM collection1 c1 JOIN collection2 c2 on c2.FK_ID = c1.ID
这样行吗

db.collection1.join(collection2, {collection1.ID:collection2.FK_ID})
还是围绕着这些线?
谢谢

不,它坏了
MongoDB
不支持联接,一次只能查询一个集合。你需要在 NoSQL语言>代码>方式下开始思考,换言之,考虑使用<代码>嵌入文档,如果不能,则可以使用<代码> DB引用< /代码>来引用文档。想想NoSQL


旁注:您猜不出语法,请阅读文档以了解支持哪些操作,
MongoDB
文档非常全面

基本上,您可以用子选择替换连接。虽然MongoDB不“支持”连接,但它确实支持类似于子选择的东西,只是不会破坏结果的模式(伪代码):

这将通过找到符合
标准的所有用户以及他们的所有帖子。与SQL不同的是,结果(映射到不同的类)不会被涂抹在单个结果blob中,但您会得到一个用户列表,并通过不同的请求获得他们的帖子。另一方面,您可能必须将用户存储在字典中,并将其映射到POST,以便在应用程序代码中构建完全填充的域模型

然而,理解在使用NoSQL时应该尽量避免这样的查询是至关重要的。如果可能的话,尝试去规范化信息。例如,除了在帖子中存储
authorId
之外,还要存储
authorName
。这使得显示帖子列表更容易、更快,但代价是必须同步对作者姓名的更改。在其他情况下,甚至可以嵌入信息。例如,
标记
可以只是一个字符串列表,即

post { title:"foo", tags:["correct", "battery", "staple", "horse"] }

您还可以使用
$in
执行删除,例如
db.collection.remove({“\u id”:{$in:[id1,id2,…]})

我还可以通过加入删除吗?
post { title:"foo", tags:["correct", "battery", "staple", "horse"] }