如何在mongodb中使用where条件
Posted
技术标签:
【中文标题】如何在mongodb中使用where条件【英文标题】:how to use where condition in mongodb 【发布时间】:2017-09-29 19:33:54 【问题描述】:我有一个mongodb的集合,里面有“MoviesID, UserID, Rating”,所以这是描述用户如何评价不同的电影,一个用户可以评价不同的电影,当然一部电影可以被不同的评价用户。现在我想找到所有对目标用户评价相似电影的用户(例如:用户 5)。给类似电影评分意味着他们至少给同一部电影评分,或者更多。那么我应该如何找到所有与用户 5 评价相似电影的用户呢?我刚开始学习mongodb。谢谢!
【问题讨论】:
【参考方案1】:假设你有一个这样的集合:
movie: 1,
user: 1,
rating: 5
,
movie: 2,
user: 5,
rating: 5
,
movie: 3,
user: 5,
rating: 3
您可以在这里做的是找到用户 5 评分的所有电影,如下所示:
db.collection.distinct("movie", user: 5 , function(err, movies)
// Will return array of distinct values for movies, where user is equal to 5.
// From our collection above, this query will return [ 2, 3 ].
)
然后:
db.collection.find( movie: $in: movies , function(err, result)
// Then we'll find the documents where movie is in the movies which
// returned on our first query.
// This will return [ user: 5, ... , user: 1, ... ]
)
我只能在两个查询中考虑这样做。我还在考虑这是否可以通过使用聚合来完成。
我希望这会有所帮助。
【讨论】:
谢谢!我认为这可能有效。但是,我将如何在结果中删除 user:5 ?我的意思是,它和它自己不相似。 如果我想输入用户怎么办?我必须使用python获取输入然后查询吗?【参考方案2】:要从 MongoDB 集合中查询数据,需要使用 MongoDB 的 find() 方法。
find() 方法的基本语法如下 -
>db.COLLECTION_NAME.find()
【讨论】:
以上是关于如何在mongodb中使用where条件的主要内容,如果未能解决你的问题,请参考以下文章