如何使用MongoDB根据阵列中的特定位置进行排序?

如何使用MongoDB根据阵列中的特定位置进行排序?,mongodb,database-administration,Mongodb,Database Administration,我的用例是: 我收集了一些想搬到某些城市的人: People { cities: ['London', 'Denver', 'Tokyo'] } 城市的顺序告诉我他们最喜欢哪个城市而不是最不喜欢哪个城市。上面提到的人最喜欢在伦敦 我有一个房东,他有房子要出租。这家伙来自一个城市,比如说伦敦 我有这个房东在手,我想查询收集的人,并得到所有的人,以多少他们喜欢房东的城市。所以对于这个房东来说,每个最喜欢伦敦的人都应该首先出现,其次是每个最喜欢伦敦的人,等等 对于不同的房东,比如说来自丹佛的房东

我的用例是:

我收集了一些想搬到某些城市的人:

People {
  cities: ['London', 'Denver', 'Tokyo']
}
城市的顺序告诉我他们最喜欢哪个城市而不是最不喜欢哪个城市。上面提到的人最喜欢在伦敦

我有一个房东,他有房子要出租。这家伙来自一个城市,比如说伦敦

我有这个房东在手,我想查询收集的人,并得到所有的人,以多少他们喜欢房东的城市。所以对于这个房东来说,每个最喜欢伦敦的人都应该首先出现,其次是每个最喜欢伦敦的人,等等

对于不同的房东,比如说来自丹佛的房东,这种类型会改变,给那些最喜欢丹佛的人


在Mongo中有什么方法可以做到这一点吗?

就目前数据库的设置方式而言,我认为最好是基于数组中的第一项进行查询。因此,房东将把他的位置(本例中为伦敦)传递给这个方法调用

// As an example
db.people.find({ "cities.0" : "London" })

至于现在数据库的设置方式,我认为最好是基于数组中的第一项进行查询。因此,房东将把他的位置(本例中为伦敦)传递给这个方法调用

// As an example
db.people.find({ "cities.0" : "London" })

“他们每人只有三个城市吗?或者这个数字可以是动态的吗?”嗨,很抱歉这么晚才回复。这个数字可以是动态的。他们每人只有三个城市,还是这个数字可以是动态的?@inspired嗨,很抱歉回复太晚了。数字可以是动态的,但这只会搜索那些首选伦敦的人。我希望所有在名单上某个地方有伦敦的人,但我希望他们被安排在伦敦的任何位置。但这只会搜索那些把伦敦作为第一选择的人。我希望所有在名单上某个地方有伦敦的人,但我希望他们在伦敦的任何位置都有订单。