首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
推荐工具
›
RoboMongo
推荐书目
›
50 Tips and Tricks for MongoDB Developers
Related Blogs
›
Snail in a Turtleneck
V2EX
›
MongoDB
怎么检查 _id 是否在一个数组里?
sd4399340
·
2012-04-28 14:54:26 +08:00
· 5138 次点击
这是一个创建于 4684 天前的主题,其中的信息可能已经有所发展或是发生改变。
有一个商品的collection,有一个分类的collection,因为分类要单独管理,所以没有embed到商品里。
商品的每个document里有一个category字段,是个数组,里面保存着分类的id(纯字符串),我每次查询一个商品,用category字段的id去查分类明细
find({ { $in: {_id: product.category} })
这样好像行不通,_id是ObjectID对象,而product.category是个字符串数组,我尝试将product.category包装成一个ObjectID的数组
_.map(product.category, db.ObjectID.createFromHexString)
不过好像还是行不通,$in大概不支持对象数组吧
求助~
category
ID
product
5 条回复
•
1970-01-01 08:00:00 +08:00
1
zhendi
2012-04-28 15:27:00 +08:00
$in支持对象数组, 楼主你再看看是不是转换ObjectID的时候转错了
https://gist.github.com/2516845
2
sd4399340
OP
2012-04-28 16:11:06 +08:00
@
zhendi
我再试试,用的mongoskin,一直也没在命令行里测,我试试看~
3
sd4399340
OP
2012-04-28 17:23:46 +08:00
@
zhendi
试了,可以了,刚才是转错了
还有一个需求,比如 find({'product.category': categories}) ,左边是个数组,右边也是个数组,只要左边数组中的某一项出现在右边这个categories数组里就匹配,应该怎么写呢?
4
zhendi
2012-04-28 17:36:30 +08:00
可以这么写:
http://gist.github.com/2517484
5
sd4399340
OP
2012-04-28 17:50:08 +08:00
@
zhendi
。。。可能又是我变量出错了
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
2693 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms ·
UTC 15:10
·
PVG 23:10
·
LAX 07:10
·
JFK 10:10
Developed with
CodeLauncher
♥ Do have faith in what you're doing.