use*_*805 4 mongodb objectid sails.js
我不知道我做错了什么.
我使用Sailsv0.10和mongo2.6.0并希望通过native更新集合中的数组字段(使用$ push).
我的模特:
module.exports = {
schema: true,
attributes: {
username: {
type: 'string',
required: true
},
pubs: {
type: 'array',
defaultsTo: []
},
...
Run Code Online (Sandbox Code Playgroud)
我的功能:
User.native(function (err, collection) {
collection.update({username:aUsernameVariable},{$push:{pubs:aPubsVariable}}, function (err) {
});
Run Code Online (Sandbox Code Playgroud)
它到目前为止工作.但是为什么这不能用作id字段的查询?
User.native(function (err, collection) {
collection.update({id:anIdVariable},{$push:{pubs:aPubsVariable}}, function (err) {
});
Run Code Online (Sandbox Code Playgroud)
我肯定使用正确的id来查询它.
我究竟做错了什么?或者是Sails-Mongo适配器的ObjectId类型转换问题
mdu*_*sch 11
如果您想使用native(),您可以直接在mongo-DB中尝试相同的查询.因为_id是一个Object-id,你应该这样做
var ObjectId = require('mongodb').ObjectID;
User.native(function (err, collection) {
collection.update({_id: new ObjectId(anIdVariable)},{$push:{pubs:aPubsVariable}}, function (err) {
});
Run Code Online (Sandbox Code Playgroud)
您可以将mongo-native-driver添加到您的应用程序中 npm install mongodb --save
小智 10
如果你使用sailsjs然后:
ObjectID = require('sails-mongo/node_modules/mongodb').ObjectID;
var o_id = new ObjectID(req.param('id'));
console.log(o_id );
Run Code Online (Sandbox Code Playgroud)
:)
rhernandez@itemsoft.mx
| 归档时间: |
|
| 查看次数: |
6266 次 |
| 最近记录: |