V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
Light3
V2EX  ›  MongoDB

求教 mongo $in 方法排序

  •  
  •   Light3 · 2016-05-06 17:49:48 +08:00 · 4336 次点击
    这是一个创建于 2883 天前的主题,其中的信息可能已经有所发展或是发生改变。

    按照$in 里面的数组的顺序排序咋用 百毒没搜到。。 mysql 是 order by field 就行了 不知道 mongo 是否有同样的方法 老司机遇到过的话 教教

    3 条回复    2016-05-07 09:47:43 +08:00
    whahuzhihao
        1
    whahuzhihao  
       2016-05-06 18:49:37 +08:00
    这种排序为什么非要在 mongo 里做? 用$in 查出来以后,在代码里手动排序呗。
    Light3
        2
    Light3  
    OP
       2016-05-06 19:02:16 +08:00
    @whahuzhihao
    = = 手动了 mysql 用多了。
    markocen
        3
    markocen  
       2016-05-07 09:47:43 +08:00
    可以用`db.eval`, 不过这个方法在 3.0 已经 deprecated 了。。

    db.eval(function() {
    return db.MyCollection
    .find({‘ name': { $in: ['a', 'b', 'c']}})
    .toArray()
    .sort(function(doc1, doc2) {
    var arr = ['a', 'b', 'c']
    return arr.indexOf(doc1.name) > arr.indexOf(doc2.name)
    })
    });
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4722 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 05:36 · PVG 13:36 · LAX 22:36 · JFK 01:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.