数据格式:{ "_id": { "$oid": "554c27c4da5f0f99510da71e" }, "msg": [ { "a": 5, "b": 5 }, { "a": 2, "b": 2 } ] }
我怎么只返回{ "a": 5, "b": 5 }:)
用什么驱动? 做什么操作? 两份数据分别是从哪里来的?
C#驱动 ,取数组中的值 比如 { "a": 5, "b": 5 } 不返回整个一条记录{ "_id": { "$oid": "554c27c4da5f0f99510da71e" }, "msg": [ { "a": 5, "b": 5 }, { "a": 2, "b": 2 } ] }
你是说这样吗db.foo.bar.find({}, {a:5,b:5})?
对返回数组中的1条记录
selector如果这样写{a:5, b:5}。代表的意思是从记录中取出a和b字段,如果记录中不存在则赋予默认值5.
你上面的记录中第一层里没有a和b字段,所以返回{a:5, b:5}
看题:数据格式 { "_id": { "$oid": "554c27c4da5f0f99510da71e" }, "msg": [ { "a": 5, "b": 5 }, { "a": 2, "b": 2 } ] }
我想返回 msg 数组中的 一条记录 比如{ "a": 5, "b": 5 }还是只能全部返回 {"msg": [ { "a": 5, "b": 5 }, { "a": 2, "b": 2 } ]}
1.12版本: db.foo.bar.find({}, {msg:{$elemMatch:{a:5, b:5}}})。 之前版本不支持。
谢谢 我看看版本